SE17_A-54

Java

次のコード断片をコンパイル、実行するとどうなりますか。

for(int i = 1;i<10;++i) {
	System.out.print(i++ + " ");
}

選択肢

A)1 3 5 7 9 が出力される

B)1 3 5 7 9 11 が出力される

C)1 2 4 6 8 が出力される

D)2 4 6 8 が出力される

E)2 4 6 8 10 が出力される

F)2 4 6 8 10 12 が出力される

解答

A)1 3 5 7 9 が出力される

B)1 3 5 7 9 11 が出力される

C)1 2 4 6 8 が出力される

D)2 4 6 8 が出力される

E)2 4 6 8 10 が出力される

F)2 4 6 8 10 12 が出力される

解説

for (int i = 1; i < 10; ++i) {
System.out.print(i++ + " ");
}

ステップごとの説明

  1. ループの初期化:
    • int i = 1: 変数 i が1に初期化されます。
  2. ループの条件:
    • i < 10: ループが実行される条件です。i が10未満の場合にループが続きます。
  3. ループの実行:
    • 各ループのイテレーションでは、次の処理が行われます。

ループの詳細な流れ

次の状態: i10 になり、ループ条件 i < 10 が満たされなくなるため、ループが終了します。したがって、出力は 1 3 5 7 9 になります。

初回 (i = 1):

System.out.print(i++ + " ") の実行:

i++1 を返しますが、これは実行後に i が2にインクリメントされることを意味します。

出力: 1

次の状態: i2 になります。

2回目 (i = 2):

System.out.print(i++ + " ") の実行:

i++2 を返し、次に i が3にインクリメントされます。

出力: 2

次の状態: i3 になります。

3回目 (i = 3):

System.out.print(i++ + " ") の実行:

i++3 を返し、次に i が4にインクリメントされます。

出力: 3

次の状態: i4 になります。

4回目 (i = 4):

System.out.print(i++ + " ") の実行:

i++4 を返し、次に i が5にインクリメントされます。

出力: 4

次の状態: i5 になります。

5回目 (i = 5):

System.out.print(i++ + " ") の実行:

i++5 を返し、次に i が6にインクリメントされます。

出力: 5

次の状態: i6 になります。

6回目 (i = 6):

System.out.print(i++ + " ") の実行:

i++6 を返し、次に i が7にインクリメントされます。

出力: 6

次の状態: i7 になります。

7回目 (i = 7):

System.out.print(i++ + " ") の実行:

i++7 を返し、次に i が8にインクリメントされます。

出力: 7

次の状態: i8 になります。

8回目 (i = 8):

System.out.print(i++ + " ") の実行:

i++8 を返し、次に i が9にインクリメントされます。

出力: 8

次の状態: i9 になります。

9回目 (i = 9):

System.out.print(i++ + " ") の実行:

i++9 を返し、次に i が10にインクリメントされます。

出力: 9

前の問題へ SE17_A-53

次の問題へ SE17_A-55