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

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

問題

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

public class Main {
	public static void main(String... args) {
		Number[] n = { 1, 2, 3, 4 };
		Integer[] i = { 1, 2, 3, 4 };
		Long[] l = { 1L, 2L, 3L, 4L };
		Double[] d = { 1.0, 2.0, 3.0, 4.0 };
		System.out.println(MyClass.sumAsIntegral(n) + "," 
                                              + MyClass.sumAsIntegral(i) + "," 
                                              + MyClass.sumAsIntegral(l) + "," 
                                              + MyClass.sumAsIntegral(d));
	}
}

class MyClass {
	public static Number sumAsIntegral(Number[] list) {
		long sum = 0L;
		for (Number n : list) {
			sum = sum + n.longValue();
			return sum;
		}
	}
}

選択肢

A)10,0,0,0 が出力される

B)NullPointerException がスローされる

C)10,10,10,10 が出力される

D)10,10,10,0 が出力される

E)NumberFormatException がスローされる

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

G)10,0,0,0 が出力される

解答

A)10,0,0,0 が出力される

B)NullPointerException がスローされる

C)10,10,10,10 が出力される

D)10,10,10,0 が出力される

E)NumberFormatException がスローされる

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

G)10,0,0,0 が出力される

解説

public class Main {
	public static void main(String... args) {
		Number[] n = { 1, 2, 3, 4 };
		Integer[] i = { 1, 2, 3, 4 };
		Long[] l = { 1L, 2L, 3L, 4L };
		Double[] d = { 1.0, 2.0, 3.0, 4.0 };
		System.out.println(MyClass.sumAsIntegral(n) + "," 
                                              + MyClass.sumAsIntegral(i) + "," 
                                              + MyClass.sumAsIntegral(l) + "," 
                                              + MyClass.sumAsIntegral(d));
	}
}

class MyClass {
	public static Number sumAsIntegral(Number[] list) {     //このメソッドはNumber型で戻す必要がありますが、Mainクラスに定義された配列はNumber型でないためコンパイルエラーとなります。
		long sum = 0L;
		for (Number n : list) {
			sum = sum + n.longValue();
			return sum;
		}
	}
}

前の問題へ SE17_A-35

次の問題へ SE17_A-37


対象資格:Java SE17 認定資格