問題
次のコードをコンパイル、実行するとどうなりますか。
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] が出力される という結果になります。
numbers
配列の内容:javaコードをコピーするint[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
validate
メソッドの動作:- このメソッドは、引数に与えられた数が素数かどうかを判断します。
- 1 は素数とはみなされませんが、問題のルールとしては特別な扱いをする必要があります(出力に含めます)。
- 2 は素数です。
- 3 は素数です。
- 4 は 2 で割り切れるため、素数ではありません。
- 5 は素数です。
- 6 は 2 で割り切れるため、素数ではありません。
- 7 は素数です。
- 8 は 2 で割り切れるため、素数ではありません。
- 9 は 3 で割り切れるため、素数ではありません。
- 10 は 2 で割り切れるため、素数ではありません。
- 11 は素数です。
- 結果のリスト:
result
リストには、1
(特別扱い)、2
、3
、5
、7
、11
が追加されます。
- 出力:javaコードをコピーする
System.out.println(result);
最終的に出力されるのは[1, 2, 3, 5, 7, 11]
です。
結論
したがって、実行結果は D)[1, 2, 3, 5, 7, 11] が出力される です。
対象資格:Java SE17 認定資格