私が知っていることから、 for ループのスコープは、その後に一連の括弧がなくても、1 つのステートメントにすぎません。右?では、このコードは次のようになります。
for(int x = 0; x < 3; x++)
if(x < 2)
System.out.println("hello");
System.out.println("world");
出力を与えます:
hello
hello
world
のステートメントif
も for ループの一部と見なされますか? もちろんそうです、私の質問はなぜですか?上記のコードを次のように変更すると、スコープが for ステートメントの直後のブロックであることが実際にはどうなりますか。
for(int x = 0; x < 3; x++)
if(x < 2) {
System.out.println("hello");
System.out.println("world");
}
出力を与えます:
hello
world
hello
world
編集:以下の回答のほとんどは、上記のコードのフロー制御の説明に関するものです。私はすでにそれを知っています。私の質問は、for ループ スコープの規則に関するものでした。
ルールは実際には、ブレースレス ループのスコープは、for
その直後のステートメントの次のブロックであるということですか?