【Java SE17 Silver 模擬試験】B-56

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

問題

以下のコード内の [ A ] に選択肢の中から当てはめてコンパイルエラーにならないものはどれか。(1つ選択)

public class Main {
	public static void main(String[] args) {
		int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
		for( [ A ] ) {
			if (i % 2 == 0)
				System.out.print(i + " ");
		}
	}
}

選択肢

A) i : nums
B) int i = 0; ++i < nums.length;
C) var i = 0; i < nums.length; i++
D) int i = 1; i < nums.length; i++
E) var i = 1; i < nums.length; ++i
F) int i = 0 : nums

解答

A) i : nums
B) int i = 0; ++i < nums.length;
C) var i = 0; i < nums.length; i++
D) int i = 1; i < nums.length; i++
E) var i = 1; i < nums.length; ++i
F) int i = 0 : nums

解説

次のコードの [ A ] に記述する正しい選択肢は C) var i = 0; i < nums.length; i++ です。この選択肢が正しい理由を以下に説明します。

  • C) var i = 0; i < nums.length; i++:
    • この選択肢は、i を 0 から始め、nums の配列の長さ (nums.length) より小さい間ループを続け、ループの最後で i をインクリメントします。これにより、nums 配列の全ての要素にアクセスでき、正しく偶数を出力できます。

他の選択肢についての評価

  • A) i : nums:
    • これは不正な構文です。コロンは使用できません。
  • B) int i = 0; ++i < nums.length;:
    • この選択肢では、i の初期値が 0 ですが、++i を使用するため、ループ開始時に i は 1 になってしまいます。したがって、最初の要素 (1) にアクセスできません。
  • D) int i = 1; i < nums.length; i++:
    • i を 1 から開始すると、最初の要素 (1) がスキップされ、2 以降の偶数のみが出力されます。
  • E) var i = 1; i < nums.length; ++i:
    • 同様に、i を 1 から始めるため、最初の要素 (1) をスキップします。
  • F) int i = 0 : nums:
    • これは不正な構文です。コロンは使用できません。

結論

したがって、正しい選択肢は C) var i = 0; i < nums.length; i++ です。これにより、1 から 10 までの全ての要素を正しく処理できます。

前の問題へ SE17_B-55

次の問題へ SE17_B-57

対象資格:Java SE17 認定資格