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

ほんの小さな間違いです。2番目の「for」ループは「j」を変数として使用していますが、「i」の条件をチェックしています

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

すべての内部ループには同じ問題があります。

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

i ではなく j である必要があります。

次のコードに変更します。

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

于 2013-10-29T13:46:10.553 に答える