首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 不規則二維陣列遍歷:為什麼輸入 7 得不到正確答案?

     編輯:程式設計疑難解答

問題背景

有位初學者在練習 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 沒有正確答案,請檢查:

  1. 是否正確讀取陣列長度(x[i].length 而非固定值)。
  2. 印出陣列結構確認資料:Arrays.deepToString(x)。
  3. 逐步除錯觀察 i、j、len 的變化。

掌握不規則陣列遍歷是 Java 基礎關鍵,多動手實驗不同結構的陣列,能有效避免此類問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved