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

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

問題

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

import java.util.ArrayList;
import java.util.List;

public class Main {
	public static void main(String... args) {
		int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
		List<Integer> result = new ArrayList<>();
		for (int number : numbers) {
			if (!validate(number))
				continue;
			result.add(number);
		}
		System.out.println(result);
	}

	private static boolean validate(int number) {
		for (int i = 2; i < number; i++) {
			if (number % i == 0)
				return false;
		}
		return true;
	}
}

選択肢

A)[1, 3, 5, 7, 9, 11] が出力される

B)[1, 2, 3] が出力される

C)[1, 3, 5, 7, 9] が出力される

D)[1, 2, 3, 5, 7, 11] が出力される

E)何も出力されない

F)[4, 6, 8, 9, 10] が出力される

G)[1, 2, 3, 5, 7] が出力される

H)[2, 4, 6, 8, 10] が出力される

I) [1, 3] が出力される

解答

A)[1, 3, 5, 7, 9, 11] が出力される

B)[1, 2, 3] が出力される

C)[1, 3, 5, 7, 9] が出力される

D)[1, 2, 3, 5, 7, 11] が出力される

E)何も出力されない

F)[4, 6, 8, 9, 10] が出力される

G)[1, 2, 3, 5, 7] が出力される

H)[2, 4, 6, 8, 10] が出力される

I) [1, 3] が出力される

解説

このコードをコンパイル、実行すると、D)[1, 2, 3, 5, 7, 11] が出力される という結果になります。

  1. numbers 配列の内容:javaコードをコピーするint[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
  2. validate メソッドの動作:
    • このメソッドは、引数に与えられた数が素数かどうかを判断します。
    • 1 は素数とはみなされませんが、問題のルールとしては特別な扱いをする必要があります(出力に含めます)。
    • 2 は素数です。
    • 3 は素数です。
    • 4 は 2 で割り切れるため、素数ではありません。
    • 5 は素数です。
    • 6 は 2 で割り切れるため、素数ではありません。
    • 7 は素数です。
    • 8 は 2 で割り切れるため、素数ではありません。
    • 9 は 3 で割り切れるため、素数ではありません。
    • 10 は 2 で割り切れるため、素数ではありません。
    • 11 は素数です。
  3. 結果のリスト:
    • result リストには、1(特別扱い)、235711 が追加されます。
  4. 出力:javaコードをコピーするSystem.out.println(result); 最終的に出力されるのは [1, 2, 3, 5, 7, 11] です。

結論

したがって、実行結果は D)[1, 2, 3, 5, 7, 11] が出力される です。

前の問題へ SE17_A-31

次の問題へ SE17_A-33


対象資格:Java SE17 認定資格