{ } を省略した if の範囲
出力はどれか。
public class Main {
public static void main(String[] args) {
int n = 1;
if (n > 5)
System.out.print("big ");
System.out.print("end");
}
}
- A
end - B
big end - C 何も出力されない
- D コンパイルエラーになる
正解と解説を見る
正解: A
- A:
{ }の無い if の本体は直後の1文だけです。2つ目の print は if と無関係に実行されます。 - B: n は 1 なので条件は false で、"big " は出力されません。
- C: 2つ目の print は if の外にあるので必ず実行されます。
- D: インデントは文法に関係なく、コンパイルできます。
ポイント
{ }を省略した if の本体は、直後の 1文だけ です。2行目の print はインデントされていても if とは無関係に必ず実行されます。
「分岐文 (if、if/else、switch) の使用」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)