Som*_*nha 3 java arrays foreach for-loop
我想将以下传统for循环转换为foreach循环:
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
arr[i][j]=sc.nextInt();
Run Code Online (Sandbox Code Playgroud)
我的尝试是:
for(int[] innerArr: arr)
for(int ele: innerArr)
ele = sc.nextInt();
Run Code Online (Sandbox Code Playgroud)
这不起作用.我认为,因为innerArr代表一行数组,并ele代表该行中的单个元素,上面的代码将起作用.但我想只有该元素的现有值arr[i][j]被复制到ele.是否可以使用foreach循环为该元素赋值?
不,这是不可能的.增强的for循环为您提供Iterable迭代的数组元素(或元素)的副本,因此为它们赋值不会更改原始数组(或Iterable).
增强的for循环尝试相当于:
for(int i = 0; i < arr.length; i++) {
int[] innerArr = arr[i];
for(int j = 0; j < innerArr.length; j++) {
int ele = innerArr[j];
ele = sc.nextInt();
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您应该坚持使用传统的for循环.
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |