在这个矩形数组中,每个循环是如何工作的?


import java.util.Scanner;
public class Recarraysumandmat 
{
public static void main(String[] args) { 
Scanner kb=new Scanner(System.in);
System.out.println("Enter row and column size: ");
int n=kb.nextInt();
int m=kb.nextInt();
int sum=0;
int [][]arr;
arr=new int[n][m];
for (int[] arr1 : arr) {
for (int j = 0; j < arr1.length; j++) {
arr1[j] = kb.nextInt();
}
}
for (int[] arr1 : arr) 
{
for (int j = 0; j < arr1.length; j++) {
System.out.print(arr1[j] + " ");
sum = sum + arr1[j];
}
System.out.println();
}
System.out.println("The sum is: "+sum);
}
}

请告诉我for-each循环是如何在这里工作的矩形数组的输入,为什么NetBeans IDE推荐每个循环超过正常的for循环,我已经研究过for-each循环只对遍历数组有用,而不是在数组中输入。

如果可以的话,请解释一下for-each循环是如何在矩形数组中工作的。

java中的2D数组实际上不是2D数组,而是数组的数组,因此发生的情况是1D数组将包含对其他数组(行)的引用。当进入循环并为每次迭代设置数组时,它只是跟随一个引用来获取该数组,然后使用arr1获取其大小。长度(即该数组的大小,即基数组的列号)

最新更新