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

Java 巢狀循環邏輯解析:二維數組行求和與輸入格式對應關係圖解

     編輯:程式設計疑難解答

代碼邏輯還原

根據題主提供的截圖描述,該代碼核心邏輯為:

  1. 讀取整數 n (表示有 n 行數據)。
  2. 對於每行 i (0 到 n-1):
    • 先讀取一個整數 m (表示該行後續有 m 個數據)。
    • 循環讀取 m 個整數存入二維數組 date[i][j]。
    • 計算該行 m 個數的和 sum。
    • 輸出 sum。

輸入輸出對應示例

輸入:
3          <-- n = 3 行
4 1 2 3 4  <-- 第 1 行: m=4, 數據 1 2 3 4
2 10 20    <-- 第 2 行: m=2, 數據 10 20
3 5 5 5    <-- 第 3 行: m=3, 數據 5 5 5

輸出:
10         <-- 1+2+3+4
30         <-- 10+20
15         <-- 5+5+5

Java 實現代碼

import java.util.Scanner;

public class RowSum {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt(); // 讀取行數
        
        for (int i = 0; i < n; i++) {
            int m = in.nextInt(); // 讀取本行數據個數
            int sum = 0;
            for (int j = 0; j < m; j++) {
                int val = in.nextInt(); // 讀取每個數據
                sum += val;             // 累加求和
            }
            System.out.println(sum);    // 輸出本行和
        }
        in.close();
    }
}

關鍵點圖解

外層循環 i=0..n-1 (控制行)
    |
    +-- 讀 m (本行元素數)
    |
    +-- 內層循環 j=0..m-1 (讀取元素並求和)
    |       |
    |       +-- 讀 date[i][j]
    |       +-- sum += date[i][j]
    |
    +-- 輸出 sum
    |
    +-- sum 歸零 (進入下一行前重置)

常見錯誤與調試技巧

  • 忘記重置 sum:若將 int sum = 0 放在外層循環外,會導致累加所有行的總和,而非單行和。
  • 混淆 m 和 n:n 是行數,m 是每行的列數 (每行可不同)。
  • 輸入流未對齊:確保每次 nextInt() 對應輸入流中的一個整數,多讀或少讀都會導致後續數據錯位。

調試建議

在 IDEA/Eclipse 中設置斷點,觀察 i, m, j, val, sum 變量隨循環變化的值,即可清晰理解數據流向。

總結

該代碼實現「每行首數給出本行元素個數,隨後讀取該行元素並求和輸出」的經典巢狀循環邏輯。核心在於**外層控制行,內層讀取該行指定個數元素並累加**,每行結束輸出並重置累加器。

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