2次元配列について学んでいきましょう。Javaにおける2次元配列の操作は、試験範囲にも頻出です。
問題
以下のコードを実行した際の出力を選んでください。正しい答えを一つ選べ。
public class TwoDimArrayExample {
public static void main(String[] args) {
int[][] matrix = new int[2][3];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
matrix[i][j] = i + j;
}
}
System.out.println(matrix[1][2]);
}
}
選択肢
- A. 2
- B. 3
- C. 4
- D. エラー
答えと解説
回答を見る
答え
B. 3
解説
基本説明:
このプログラムは2次元配列を用いています。2次元配列は「配列の配列」と考えるとわかりやすいです。ここではint[][] matrix = new int[2][3]
として、2行3列のマトリックス(行列)を宣言しています。
matrix[i][j] = i + j
の行で、配列の各要素にiとjの和を代入しています。最終的に、matrix[1][2]
の値が出力されます。
誤答理由:
選択肢Aの「2」や選択肢Cの「4」は、配列のインデックス指定を誤解した場合の誤答です。matrix[1][2]
は、カウントが0から始まるため、2行目の3列目を指します。インデックスに気を付けてください。
つまずきポイント:
多くの初学者は配列のインデックスが0から始まることを軽視しがちです。また、手動で計算をしなければならない数の少なさや要素数の誤解も、しばしば誤答の原因となります。実際の要素が何になるのか、手を動かして書き出すと良いです。
発展知識:
2次元配列はJavaで非常に強力なデータ構造です。より深い理解として、各要素へのアクセスとその初期化に対する変化の効果を考えることが重要です。また、列数を行ごとに異なる形で設定することができる「ジャグ配列」も知識として追求すると面白いでしょう。