簡體   English   中英

用Java添加兩個矩陣

[英]Add two matrices in Java

我正在嘗試添加兩個矩陣,當編譯器嘗試調用sum方法時,我得到了異常。

public static void main(String[] args) {

    int[][] a = new int[3][3];
    int[][] b = new int[3][3];

    for (int i = 0; i < a.length; i++)
    {
        for (int j = 0; j < a[0].length; j++)
        {
            a[i][j] = Integer.parseInt(JOptionPane.showInputDialog("Enter a[" + i + "][" + j + "]"));
        }
    }
    for (int i = 0; i < b.length; i++)
    {
        for (int j = 0; j < b[0].length; j++)
        {
            b[i][j] = Integer.parseInt(JOptionPane.showInputDialog("Enter b[" + i + "][" + j + "]"));
        }
    }

我在下一行得到例外。

    int[][] c = sum(a,b);

    for (int[] row: c)
    {
        for (int e: row)
        {
            System.out.print(e + "\t");
        }
    }

}
public static int[][] sum(int[][] a, int[][] b)
{
    int[][] c = new int[a.length][a[0].length];

    for (int i = 0; i < a.length; i++)
    {
        for (int j = 0; i < a[i].length; j++)
            c[i][j] = a[i][j] + b[i][j];
    }
    return c;
}

有人可以幫我嗎?

您的內循環中有錯別字:

for (int j = 0; i < a[i].length; j++)

應該

for (int j = 0; j < a[i].length; j++)

並導致ArrayIndexOutOfBoundsException因為j超出了數組的大小。

發生異常時,您首先要查看的是異常的名稱。 它通常非常有用。 在這種情況下,它告訴我們我們不小心循環了太多。 如果名稱不完整,我們至少可以找出錯誤發生的地方。 堆棧跟蹤包含發生錯誤的行。 如果所有這些都不幫助/存在,我們可以使用調試器,或一路打印調試消息來診斷問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM