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

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

問題

次のコード断片を実行し、6が出力される時の i と j の値はどうなりますか。

int[][] arrays = { { 1, 2, 3 }, { 4, 5, 6, 7 } };
for (int i = 0; i < arrays.length; i++) {
	for (int j = 0; j < arrays[i].length; j++) {
		System.out.print(arrays[i][j]);
	}
}

選択肢

A)i = 1, j = 4

B)i = 1, j = 2

C)i = 1, j = 1

D)i = 0, j = 1

E)i = 0, j = 2

F)i = 1, j = 3

G)i = 0, j = 3

解答

A)i = 1, j = 4

B)i = 1, j = 2

C)i = 1, j = 1

D)i = 0, j = 1

E)i = 0, j = 2

F)i = 1, j = 3

G)i = 0, j = 3

解説

このコードを実行すると、arrays という2次元配列があり、最初のループで i が行を、内側のループで j が列を表します。
この設問の2次元配列は、1つの配列内に2つの配列がある状態です。

int[][] arrays = { { 1, 2, 3 }, { 4, 5, 6, 7 } };

arrays[0]{ 1, 2, 3 } という配列で、長さは3です。
arrays[1]{ 4, 5, 6, 7 } という配列で、長さは4です。

ループの挙動

  1. 最初のループ (i = 0):
    • j = 0: 出力 1
    • j = 1: 出力 2
    • j = 2: 出力 3
  2. 次のループ (i = 1):
    • j = 0: 出力 4
    • j = 1: 出力 5
    • j = 2: 出力 6
    • j = 3: 出力 7

このコードの実行結果は 1234567 ですが、6 が出力されたときの ij の値は以下の通りです。

  • i = 1 (2番目の配列 { 4, 5, 6, 7 } に入っている)
  • j = 2 (6 を出力した)

結論

したがって、正しい選択肢は B)i = 1, j = 2 です。

前の問題へ SE17_B-09

次の問題へ SE17_B-11

対象資格:Java SE17 認定資格