【Java SE17 Silver 模擬試験】A-40

Java SE17 Silver 模擬試験
Java SE17 Silver 模擬試験

問題

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

int[] array = {3,7,4,6,5};
int count = 0;
for (int element: array) {
	switch (element) {
		case 3: count++;
		case 4: count++; break;
		case 5: ++count;
		case 6: ++count; break;
		case 7: count++;
		default: --count;
	}
}
System.out.println(count);

選択肢

A)コンパイルエラーになる

B)7 が出力される

C)4 が出力される

D)5 が出力される

E)8 が出力される

E)6 が出力される

解答

A)コンパイルエラーになる

B)7 が出力される

C)4 が出力される

D)5 が出力される

E)8 が出力される

E)6 が出力される

解説

このコードをコンパイル、実行すると、D)5 が出力される という結果になります。

  1. 初期状態:
    • array の要素は {3, 7, 4, 6, 5} で、count0 から始まります。
  2. for-eachループとswitch文:
    • element に対して switch 文が実行されます。
  3. 各要素に対する処理:
    • element = 3:
      • count++count1 に)
      • case 4 に進むが、break があるのでここで終了
    • element = 7:
      • count++count2 に)
      • default に進み、--countcount1 に)
    • element = 4:
      • count++count2 に)
      • break で終了
    • element = 6:
      • ++countcount3 に)
      • break で終了
    • element = 5:
      • ++countcount4 に)
      • break で終了
  4. 最終結果:
    • 各処理が終わった後、count の最終値は 5 になります。

結論

したがって、実行結果は D)5 が出力される です。

int[] array = {3,7,4,6,5};      //①3  ②7  ③4  ④6  ⑤5
int count = 0;
for (int element: array) {
	switch (element) {
		case 3: count++;              //①1
		case 4: count++; break;    //①2   ③3
		case 5: ++count;              //⑤5
		case 6: ++count; break;      //④4      ⑤6
		case 7: count++;     //②3
		default: --count;      //②2
	}
}
System.out.println(count);    //6が出力

前の問題へ SE17_A-39

次の問題へ SE17_A-41


対象資格:Java SE17 認定資格