問題
次のコード断片を実行し、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
解説
int[][] arrays = { { 1, 2, 3 }, { 4, 5, 6, 7 } };
設問の多次元配列は、{ 1, 2, 3 }の要素がある0番目と、{ 4, 5, 6, 7 }の要素がある1番目があります。
6を出力したい場合、6が格納されている1番目を指定します。( i = 1 )
1番目には、{ 4, 5, 6, 7 }の要素があるため、2番目を指定する必要があります。( j = 2 )
このコード断片で、6
が出力される時の i
と j
の値は次の通りです。
- 配列
arrays
は2次元配列で、以下の要素を持っています:arrays[0] = {1, 2, 3}
arrays[1] = {4, 5, 6, 7}
- 外側のループでは
i
が0
からarrays.length
の値(2)未満の間で繰り返されます。つまり、i
は0
から1
までの2回繰り返されます。 - 内側のループでは
j
が0
からarrays[i].length
の値まで繰り返されます。
i = 0
のとき、arrays[0]
の長さは3
なので、j
は0
から2
まで繰り返されます。この場合、出力される値は1
,2
,3
です。i = 1
のとき、arrays[1]
の長さは4
なので、j
は0
から3
まで繰り返されます。この場合、出力される値は4
,5
,6
,7
です。
6
が出力されるのは、i = 1
かつj = 2
のときです。
結論
正しい選択肢は B)i = 1, j = 2 です。
対象資格:Java SE17 認定資格