先生から、「for each」を使用して配列の 2 番目の次元に数値を割り当てるように言われました。私は次のコードでそれをやろうとしましたが、うまくいきません:
int[][] Square = new int[5][5];
for(int row : Square[])
for(int col : Square[][])
-----
先生から、「for each」を使用して配列の 2 番目の次元に数値を割り当てるように言われました。私は次のコードでそれをやろうとしましたが、うまくいきません:
int[][] Square = new int[5][5];
for(int row : Square[])
for(int col : Square[][])
-----
試してみてください:
for ( int[] row : Square ) {
for ( int col : row ) {
// your code
}
}
int の 2 次元配列をループすると、int の 1 次元配列が得られます。1 次元配列をループすると、int が返されます。
for (int row[] : Square) {
for(int col : row) {
}
}
おそらくあなたが意図したのは
int[][] square = new int[5][5];
for(int[] row : square)
for(int col : row)
ただし、インデックスも知る必要があるため、これはあまり役に立ちません。
int[][] square = new int[5][5];
for(int row=0; row < square.length; row++) {
for(int col=0; col < square[row].length; col++) {
int i = square[row][col];
}
}
これは宿題というレッテルを貼られているので、私はあなたにすべての答えを教えません。
ただし、配列のサイズを取得したい場合は、関連する配列の長さを取得する必要があります。
Square.length
配列の配列の長さを取得し、
Square[x].length
array の長さを取得しx
ます。これにより、配列への適切なインデックスが得られることに注意してください。これは役立つ場合があります。次を使用して、それなしで反復できます。
for (int[] row : Square) {
...
インデックスを提供しないなど。詳細については、for ループに関する Oracle の基本事項のセクションを参照してください。
(余談ですが、変数の名前をsquare
ではなくに変更します。クラスの型に最初の大文字をSquare
付けて名前を付けるのはJavaの慣例です)
このような?
int[][] Square = new int[5][5];
for(int[] row : Square) {
for(int col : row) {
System.out.println("Col = " + col);
}
}
http://javafiddle.net/xfMLMyを参照してください