让我们看看这个简单的 Java 代码:
class A {
public static void main(String[] args) {
if (1 == 1)
if (2 == 2)
if (2 != 2) // <-- should end here and do nothing
System.out.println("2 != 2");
else
System.out.println("2 != 2");
else
System.out.println("1 != 1");
}
}
正如评论所说,它应该看到1==1
, then 2==2
,但是最嵌套的条件2!=2
失败了,所以程序退出而不打印任何东西。但事实并非如此,而是说2!=2
:
$ javac A.java && java A
2 != 2
为什么?
奇怪的是,它在 Python 中按预期工作:
>>> if (1 == 1):
... if (2 == 2):
... if (2 != 2):
... print("2 != 2");
... else:
... print("2 != 2");
... else:
... print("1 != 1");
...
>>>