while の条件で後置インクリメント
出力はどれか。
public class Main {
public static void main(String[] args) {
int i = 0;
while (i++ < 3) {
System.out.print(i);
}
System.out.print(" " + i);
}
}
- A
123 4 - B
012 3 - C
123 3 - D
0123 4
正解と解説を見る
正解: A
- A: 比べるのは増やす前の値で、本体では増やした後の値を出力します。最後の判定 (3 < 3) でも i は 4 に増えます。
- B: 本体で出力するのは i++ で増えた後の値なので、1 から始まります。
- C: 最後の判定
3 < 3が false でも、後置インクリメントで i は 4 になります。 - D: 本体で出力されるのは増えた後の値 (1, 2, 3) だけです。
ポイント
i++ < 3は、比べるのは増やす前の値、本体で使うのは増やした後の値です。- 最後の判定 (3 < 3 は false) でも i は増えるので、ループの後は 4 です。
「繰り返し文 (do/while、while、for 文および拡張 for 文) の使用」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)