前置・後置インクリメントと if
出力はどれか。
public class Main {
public static void main(String[] args) {
int a = 5;
if (a++ == 5 && ++a == 7) {
System.out.println("yes " + a);
} else {
System.out.println("no " + a);
}
}
}
- A
yes 7 - B
no 6 - C
yes 6 - D
no 7
正解と解説を見る
正解: A
- A:
a++ == 5は増やす前の 5 で比べて true (a は 6)、++aは先に増やして 7 == 7 で true です。 - B:
a++ == 5は増やす前の値 (5) で比べるので true です。 - C:
&&の左が true なので右の++aも実行され、a は 7 になります。 - D: 両方の条件が true なので else には進みません。
ポイント
a++ == 5は増やす前の 5 で比べるので true (a は 6 に)。++aは先に増やすので 7 == 7 で true です。
「分岐文 (if、if/else、switch) の使用」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)