[英]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.