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

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

問題

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

public class Main {
	public static void main(String... args) {
		Object[] list = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
		for (int i = 0; i < list.length; i++) {
			if (!(list[i] instanceof String weekOfDay)) {
				System.out.println(weekOfDay + "is not Week of day.");
			} else {
				System.out.print(switch (weekOfDay) {
				case "Monday":
					yield 'M';
				case "Friday":
					yield 'F';
				case "Tuesday", "Thursday":
					yield 'T';
				case "Saturday", "Sunday":
					yield 'S';
				case "Wednesday":
					yield 'W';
				default:
					yield 'N';
				});
			}
		}
	}
}

選択肢

A)変数 weekOfDay は if 句では参照できないのでコンパイルエラーになる

B)変数 weekOfDay は else 句では参照できないのでコンパイルエラーになる

C)83778487847083 が出力される

D)実行時に ArrayIndexOutOfBoundsException がスローされる

E)実行時に ClassCastException がスローされる

F)SMTWTFS が出力される

G)switch 式では char をリターンすることはできないのでコンパイルエラーになる

解答

A)変数 weekOfDay は if 句では参照できないのでコンパイルエラーになる

B)変数 weekOfDay は else 句では参照できないのでコンパイルエラーになる

C)83778487847083 が出力される

D)実行時に ArrayIndexOutOfBoundsException がスローされる

E)実行時に ClassCastException がスローされる

F)SMTWTFS が出力される

G)switch 式では char をリターンすることはできないのでコンパイルエラーになる

前の問題へ SE17_A-52

次の問題へ SE17_A-54


対象資格:Java SE17 認定資格