【Java SE17 Silver 模擬試験】B-14

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 が出力される

解説

各要素に対するスイッチ文の処理

  • element = 3:
    • count++count は 1 に。
    • 次の case に進む(break がないため)。
    • case 4: に入るが、count++ で 2 に。
    • break でスイッチを終了。
  • element = 7:
    • case 7: に入り、count++ で 3 に。
    • default: にも入る(break がないため)、--count で 2 に。
  • element = 4:
    • case 4: に入り、count++ で 3 に。
    • break でスイッチを終了。
  • element = 6:
    • case 6: に入るが、break がないため、count++ で 4 に。
    • break でスイッチを終了。
  • element = 5:
    • case 5: に入り、++count で 5 に。
    • 次の case に進む(break がないため)。
    • case 6: に入るが、break がないため、count++ で 6 に。
    • break でスイッチを終了。

最終的な count の値

最終的な count の値は 6 です。

結果

したがって、出力は E)6 が出力される です。

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_13

次の問題へ SE17_B-15

対象資格:Java SE17 認定資格