-1

先生から、「for each」を使用して配列の 2 番目の次元に数値を割り当てるように言われました。私は次のコードでそれをやろうとしましたが、うまくいきません:

int[][] Square = new int[5][5];

for(int row : Square[])

         for(int col : Square[][])

               -----
4

5 に答える 5

4

試してみてください:

for ( int[] row : Square ) {
  for ( int col : row ) {
    // your code
  }
}
于 2012-09-25T12:23:22.660 に答える
3

int の 2 次元配列をループすると、int の 1 次元配列が得られます。1 次元配列をループすると、int が返されます。

for (int row[] : Square) {
    for(int col : row) {

    }
}
于 2012-09-25T12:23:39.403 に答える
2

おそらくあなたが意図したのは

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];
     }
}
于 2012-09-25T12:24:24.520 に答える
0

これは宿題というレッテルを貼られているので、私はあなたにすべての答えを教えません。

ただし、配列のサイズを取得したい場合は、関連する配列の長さを取得する必要があります。

Square.length

配列の配列の長さを取得し、

Square[x].length

array の長さを取得しxます。これにより、配列への適切なインデックスが得られることに注意してください。これは役立つ場合があります。次を使用して、それなしで反復できます。

for (int[] row : Square) {
  ...

インデックスを提供しないなど。詳細については、for ループに関する Oracle の基本事項のセクションを参照してください。

(余談ですが、変数の名前をsquareではなくに変更します。クラスのに最初の大文字をSquare付けて名前を付けるのはJavaの慣例です)

于 2012-09-25T12:22:56.837 に答える
0

このような?

int[][] Square = new int[5][5];
for(int[] row : Square) {
  for(int col : row) {
    System.out.println("Col = " + col);
  }
}

http://javafiddle.net/xfMLMyを参照してください

于 2012-09-25T12:26:04.307 に答える