Zerenity:
イムは、ネストされたループバリアントの上に混乱しました。どういうわけか、これらのループは、同じ結果を与えるが、私はそれのまわりで私の頭をラップ傾けます。同様に、第二のコードでは、値をwouldntの、COL <値[行]の部分で述べている[行] = 4(4行があるため)?ただ、これらは最初のもの最初に実行し、仕上げ相互作用とそのループんか疑問イムだから?
for (int row = 0; row < 4; row++)
{
for (int col = 0; col < 3; col++)
{
System.out.print(values[row][col] + " ");
}
System.out.println();
}
for (int row = 0; row < values.length; row++)
{
for (int col = 0; col < values[row].length; col++)
{
System.out.print(values[row][col] + " ");
}
System.out.println();
}
Shreyaシャルマ:
私はあなたがここに尋ねるしようとしているが、私はあなただけのコードの2つのブロックの違いを知りたいと思いますされていることを確認していません。
私は簡単な例で、あなたにそれを説明します:
import java.util.*;
public class HelloWorld{
public static void main(String []args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[][]values = new int[n][m];
for(int i=0; i<n;i++){
for(int j=0; j<m; j++){ //read a 5 x 8 array
values[i][j]= sc.nextInt();
}
}
System.out.print("Input Array :");
for(int i=0; i<n;i++){
for(int j=0; j<m; j++){
System.out.print(values[i][j] +" ");
}
System.out.println("");
}
System.out.print("First Code :");
for (int row = 0; row < 4; row++)
{
for (int col = 0; col < 3; col++)
{
System.out.print(values[row][col] + " ");
}
System.out.println();
}
System.out.print("Second Code :");
for (int row = 0; row < values.length; row++)
{
for (int col = 0; col < values[row].length; col++)
{
System.out.print(values[row][col] + " ");
}
System.out.println();
}
}
}
入力:
5 8
3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7
プログラムの出力は次のとおりです。
Input Array :3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7
First Code :3 3 3
4 4 4
5 5 5
6 6 6
Second Code :3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7
values.length = 4と値[行]は.LENGTH = 3がそうでなければ、彼らは異なる結果を与えるのであれば、あなたは最初のブロックを見ることができるように正確に第二のブロックのように動作します。配列の優れた実践を横断することはArray.lengthとの代わりに、長さのハードコーディング値に行くことです。