2017-05-14 22 views
0

ループの場合、空の配列をで印刷したいだけです。多次元配列の印刷Java

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10 

何が問題なのですか。

あなたは配列の次元、配列の要素にアクセスするためのループインデックスをない使用する必要があります
int NYEARS = 5; 
int NRATES = 3; 

double[][] balancee = new double[NYEARS][NRATES]; 
for (int i = 0; i < NYEARS; i++) { 
    for (int j = 0; j < NRATES; j++) { 
     System.out.print(balance[NYEARS][NRATES] + " "); 
     System.out.println(); 
    } 
} 

答えて

1

for (int i = 0; i < NYEARS; i++) { 
    for (int j = 0; j < NRATES; j++) { 
     System.out.print(balance[i][j] + " "); 
     System.out.println(); 
    } 
} 
+0

ありがとう、それは動作します:) – MrKrokiet

1

あなたのソリューションはjava.lang.ArrayIndexOutOfBoundsException: 5あなたはまた、タイプミスbalanceを持っている代わりに、あなたはbalanceeを意味原因となります。

代わりにbalancee.lengthbalancee[i].lengthではなくbalance[NYEARS][NRATES]を使用する必要がありますので、を次のように使用する必要があります。

for (int i = 0; i < balancee.length; i++) { 
    for (int j = 0; j < balancee[i].length; j++) { 
     System.out.print(balancee[i][j] + " "); 
     System.out.println(); 
    } 
} 
+0

残高[NYEARS] [NRATES]これは最後の値だけを印刷します、それは間違っています。それは縛られていない。 – snr

+0

これは正しい@snr私の悪いですか? –

+0

もっと重要なのは、間違った点があっても誰が+1したのだろうか。 – snr

0

ちょうど私が彼らの指標と算術演算を行う必要がない場合、私は、一般的にforeachのを好むビルトインArrays.deepToString()

int[][] foo = { null, {}, { 1 }, { 2, 3 } }; 
System.out.println(Arrays.deepToString(foo)); 

出力

[null, [], [1], [2, 3]] 
0
int NYEARS = 5; //This is the size 
int NRATES = 3; //This is the size 

double[][] balancee = new double[NYEARS][NRATES]; //<-- balancee vs balance 



for (int i = 0; i < NYEARS; i++) { 
for (int j = 0; j < NRATES; j++) { 
    System.out.print(balance[NYEARS][NRATES] + " "); //<-- use i and j instead of size. 
    System.out.println(); 
    } 
} 
1

を使用

for (double[] x : balancee) { 
    for (double y : x) { 
     System.out.print(y + " "); 
}   
    System.out.println(); 
} 

もっと重要なことは、なぜあなたはbalance[NYEARS][NRATES]を使用できないのかと思います。