有位初學者在練習 Java 陣列操作時遇到困惑:測試輸入 7 卻始終無法獲得預期結果。原始題目要求遍歷一個不規則二維陣列(即「鋸齒陣列」),並印出所有元素值。
初學者常誤以為二維陣列必須是矩形(每行長度相同),但在 Java 中 int[][] x = {{1,2}, {3,4,5}, {6,7,8,9}}; 這樣的宣告是完全合法的。每一行 x[i] 本身就是一個獨立的一維陣列,長度可以不同。
int[][] x = {{1,2}, {3, 4, 5}, {6, 7, 8, 9}};
int len;
for (int i = 0; i < x.length; i++) {
// 每一行 x[i] 都是一個獨立陣列
len = x[i].length;
for (int j = 0; j < len; j++) {
// 遍歷印出所有元素
System.out.println("x[" + i + "][" + j + "] = " + x[i][j]);
}
}
i < x.length 取得行數(此例為 3)。j < x[i].length 動態取得該行實際長度(分別為 2、3、4)。ArrayIndexOutOfBoundsException。若你的測試輸入 7 沒有正確答案,請檢查:
x[i].length 而非固定值)。Arrays.deepToString(x)。i、j、len 的變化。掌握不規則陣列遍歷是 Java 基礎關鍵,多動手實驗不同結構的陣列,能有效避免此類問題。