この単純な 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
、 then2==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");
...
>>>