
問題
次のコードをコンパイル、実行するとどうなりますか。
public class Main {
public static void main(String... args) {
String[] states = { "CO", "CA", "NY", "DC", "TX" };
for (int i = 0; i < states.length; i++) {
String state = states[i];
switch (state) {
case "CA":
continue;
case "DC":
break;
default:System.out.print(state);
}
System.out.print(":");
}
}
}
選択肢
A)CO:CA:NY:DC:TX: が出力される
B)CO:NY:DC:TX: が出力される
C)CO: :NY:TX: が出力される
D)CO:NY:TX: が出力される
E)CO:CA:NY: :TX: が出力される
F)CO: :NY: :TX: が出力される
G)CO:NY: :TX: が出力される
解答
A)CO:CA:NY:DC:TX: が出力される
B)CO:NY:DC:TX: が出力される
C)CO: :NY:TX: が出力される
D)CO:NY:TX: が出力される
E)CO:CA:NY: :TX: が出力される
F)CO: :NY: :TX: が出力される
G)CO:NY: :TX: が出力される
解説
コードの動作
- 配列の初期化:
states
配列にはCO
,CA
,NY
,DC
,TX
の5つの州名が格納されています。
- for ループ:
for
ループがstates
配列の各要素を処理します。
- switch 文:
- 各州名に対して
switch
文が評価されます。 case "CA"
: この場合はcontinue
が実行され、次のイテレーションにスキップします。case "DC"
: この場合はbreak
が実行され、for
ループの残りの部分がスキップされます。default
: その他の州名(CO
,NY
,TX
)が出力されます。
- 各州名に対して
各州名の処理
CO
:default
に該当し、CO
が出力されます。System.out.print(":");
が実行され、:
が出力されます。
CA
:continue
により、次のイテレーションにスキップされるため、出力されません。
NY
:default
に該当し、NY
が出力されます。:
が出力されます。
DC
:break
により、ループから抜け出します。このため、DC
は出力されず、:
も出力されません。
TX
:- ループは
DC
で終了するため、TX
は処理されません。
- ループは
正しい選択肢
この結果に基づいて、正しい選択肢は C)CO: :NY:TX: です。
対象資格:Java SE17 認定資格