每个循环如何在这个矩形阵列中工作?
How for each loop is working in this rectangular array?
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 中的二维数组实际上不是二维数组,而是数组的数组,因此一维数组将包含对其他数组(行)的引用。当进入循环并为每次迭代设置一个数组时,它只是跟随一个引用来获取该数组,然后使用 arr1.length 获取它的大小(这是该数组的大小,它将是基本数组)
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 中的二维数组实际上不是二维数组,而是数组的数组,因此一维数组将包含对其他数组(行)的引用。当进入循环并为每次迭代设置一个数组时,它只是跟随一个引用来获取该数组,然后使用 arr1.length 获取它的大小(这是该数组的大小,它将是基本数组)