
問題
次のコードをコンパイル、実行するとどうなりますか。
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 認定資格
