public class Main {
public static void main(String[] args) {
boolean flag = true;
if (flag)
int value = 100;
System.out.println("Success");
}
}
選択肢
- あなたの回答
- 正解
正解
D. if 文の直後に変数宣言が記述されているため、コンパイルエラーになる
詳細解説
Javaの文法ルールとして、if 文や loop 文などのブロック({})を持たない単一文の位置に、ローカル変数宣言文を直接記述することはできません。変数宣言を行うと、その変数は宣言された文の直後(この場合は if 文の終わり)で即座にスコープを外れてしまい意味をなさないため、コンパイルエラーとなります。
なぜ他の選択肢が違うのか
- if 文のすぐ下に直接変数宣言があるため、コンパイルエラーとなり実行できません。
- 「Success」という文字はコンパイルエラーのため出力されません。
- 変数宣言の構文エラーがあるため、プログラムは動作しません。
罠ポイント
中括弧({})を省略した if 文の直下には、ローカル変数宣言を記述できず、記述すると文法エラー(コンパイルエラー)になる点です。