Java if else不加花括号{}的用法

文章目录

今天看代码,发现有的 if else语句后面没有花括号 {}

final void lock(){ 
    if(compareAndSetState(0,1))
        setExclusiveOwnerThread(Thread.currentThread());
    else
        acquire(1);
}

下面谈一下,加不加 花括号 {} 的 区别和影响

1 只有一对 if else 时,后面不加{},就近原则,只控制第一句
  • 不加 {}
if (1==2)
x=1;y=2;z=3;

编译后

if (1==2)
{ x=1};y=2;z=3; 

当1!=2时,y=2;z=3;仍执行

  • 加{}
if (1 == 2)
{  x=1;y=2;z=3;}

当1!=2时,都不执行

  • 总结
    后面不加{}时,就近原则,只控制第一句
2 多个 if else时,if else按照就近匹配的原则进行匹配,这时候,不加{},很容易出错

实际想要的效果

if(Character.isLowerCase(c)){ 
    if(count[c-'a']==1)
       return i;
}
else{ 
    if(count[c-'A'+26]==1)
       return i;
}

如果不加 {},实际行 else匹配的是第二个 if,程序出错

if(Character.isLowerCase(c))
   if(count[c-'a']==1)
      return i;
   else
      if(count[c-'A'+26]==1)
        return i;
3 总结

if … else… 能够不加 {} 的情况

  • 只有一对 if else语句
  • if else 后面只跟着一个判断语句
    为了防止出错,建议代码规范化,if else 都加上 {}
    原文作者:ly_dsjing
    原文地址: https://blog.csdn.net/JingLxian/article/details/106825963
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞