我今天遇到了这个难题。显然,这不是正确的风格,但我仍然很好奇为什么没有输出。
int x = 9;
int y = 8;
int z = 7;
if (x > 9) if (y > 8) System.out.println("x > 9 and y > 8");
else if (z >= 7) System.out.println("SHOULD OUTPUT THIS x <= 9 and z >= 7");
else
System.out.println("x <= 9 and z < 7");
以上运行时没有输出。但是,当我们为 if 语句添加括号时,突然间逻辑的行为与我预期的一样。
int x = 9;
int y = 8;
int z = 7;
if (x > 9) {
if (y > 8) System.out.println("x > 9 and y > 8");
}
else if (z >= 7) System.out.println("SHOULD OUTPUT THIS x <= 9 and z >= 7");
else
System.out.println("x <= 9 and z < 7");
这将输出“应该输出 x <= 9 和 z >= 7”。这里发生了什么?
谢谢!