else はどの if に付く?
出力はどれか。
public class Main {
public static void main(String[] args) {
int x = 5;
if (x > 3)
if (x > 10)
System.out.println("A");
else
System.out.println("B");
}
}
- A
B - B
A - C 何も出力されない
- D コンパイルエラーになる
正解と解説を見る
正解: A
- A: else は一番近い if (
x > 10) に付きます。x = 5 なので else 側の B が出力されます。 - B:
x > 10は false なので A は出力されません。 - C: else は内側の if に付いているので、内側の条件が false のとき B が出力されます。
- D:
{ }を省略した if / else は正しい書き方です。
ポイント
{ }を省略すると、else は 一番近い if に付きます。インデントは関係ありません。
「分岐文 (if、if/else、switch) の使用」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)