【问题标题】:No curly braces if else statements?if else 语句没有花括号?
【发布时间】:2024-01-10 15:25:01
【问题描述】:
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”会运行吗?它属于哪个“如果”?为什么或者为什么不?谢谢

【问题讨论】:

标签: java if-statement


【解决方案1】:

Else 通常与最后一个 if 一起使用,如果未提及 {}。因此,在您的情况下,elseif ( y &lt;= 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 ); 

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

【讨论】:

    【解决方案2】:

    它将打印出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); 
    

    这就是为什么正确使用两个括号(){} 是非常值得推荐的!

    【讨论】: