2

我只是在学习在 java 中使用多维数组。
当我尝试创建用户输入的值的 3x3 矩阵时出现错误。

import java.util.Scanner;

public class myMatrix 
{
    public static void main(String args[])
    {
        double[][] matrixOne = new double[3][3];
        double[][] matrixTwo = new double[3][3];
        double[][] finalMatrix = new double[3][3];
        Scanner takeInput = new Scanner(System.in);
        System.out.println("Enter values of matrix One");
        for(int i=0;i<3;i++)
        {
            for(int j=0;i<3;j++)
            {
                matrixOne[i][j] = takeInput.nextDouble();
            }
        }
        System.out.println("Enter values of matrix Two");
        for(int i=0;i<3;i++)
        {
            for(int j=0;i<3;j++)
            {
                matrixTwo[i][j] = takeInput.nextDouble();
            }
        }
        for(int i=0;i<3;i++)
        {
            for(int j=0;i<3;j++)
            {
                finalMatrix[i][j] = matrixOne[i][j] + matrixTwo[i][j];
                System.out.print(finalMatrix[i][j] + "\t");
            }
            System.out.println();
        }

    }
}

输入 4 个数字后,我收到数组索引超出范围的错误。
为什么?
我在程序中犯了任何错误吗?

4

3 回答 3

2
for(int j=0;i<3;j++)
{
    matrixOne[i][j] = takeInput.nextDouble();
}

在这个循环中,您正在检查这i<3是否j<3会导致您的错误。

于 2013-10-29T13:38:06.067 回答
1

它只是一个小错误。您的第二个“for”循环使用“j”作为变量,但检查“i”的条件

for(int j=0;i<3;j++)
于 2013-10-29T13:38:16.893 回答
0

所有内部循环都有相同的问题:

for(int j=0; i<3 ;j++)

它应该是 j 而不是 i。

将其更改为以下代码:

for(int j=0; j<3 ;j++)

于 2013-10-29T13:46:10.553 回答