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

文章目录

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

今天看代码,发现有的 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 都加上 {}

你可能感兴趣的:(Java基础)