繁体   English   中英

如果 else 语句没有大括号?

[英]No curly braces if else statements?

int x = 5, y = 5, z = 5;
  if ( x != 5 )
    if ( y <= 7 )
    z = z + 4;
  else
    z = z + 2;
 System.out.println( z ); 

“其他”会运行吗? 它属于哪个“如果”? 为什么或者为什么不? 谢谢

Else通常与最后一个if , if {}未提及。 因此,在您的情况下, elseif ( y <= 7 ) ,因此不会被执行。 查看您的代码,您似乎需要这种方式

int x = 5, y = 5, z = 5;
if ( x != 5 ){
    if ( y <= 7 )
    z = z + 4;
}
else{
    z = z + 2;
}
System.out.println( z ); 

所以如果你不把括号放在这里,否则不会执行。

它将打印出5 它甚至没有接近第二个if-else ,因为没有通过第一个条件x!=5并且缺少else语句,它会转到您打印变量的最后一行。 它与以下内容相同:

int x=5, y=5, z=5;
if (x!=5) {
    if (y<=7) {
        z=z+4;
    } else {
        z=z+2;
    }
}
System.out.println(z); 

这就是为什么正确使用括号(){}的原因超过推荐!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM