在此我提供了一个数组数组,这些数组随着循环的进行而变化,结果并不像预期的那样。 请告诉我为什么会这样。
public class forEach2 {
public static void main(String[] args) {
int a [][] = {{ 1,2,3},{4 ,5,6},{7,8,9}};
int proArr = 0;
for (int pro : a[proArr] ){
System.out.println(pro);
proArr ++;
}
}
结果 -
1
2
3
这里,当循环启动proArr(处理数组数组,数组'a'更具体)的值时会发生变化,但这对结果没有影响。
结果是[0];
的数据为什么会在Java的for循环中发生这种情况?
答案 0 :(得分:2)
你的程序完全按照你的要求行事。
for ( x in { 1, 2, 3 } )
echo x
循环总共次,迭代多维数组的索引0中的每个对象。你期待什么?
在此示例中,启动for循环后proArr
无意义,因为递增的值永远不会消耗。
如果要打印整个多维数组,必须使用两个嵌套循环。
// Loop super array, getting each nested array
for ( int[] x : a ) {
// Loop each nested array and print
for ( int y : x ) {
System.out.println(y);
}
}
修改强>
更新以仅打印每个阵列的第一个元素,如OP需要
// Loop super array, getting each nested array
for ( int[] x : a ) {
// Print first element of each
System.out.println(x[0]);
}
答案 1 :(得分:0)
int a [][] = {{ 1,2,3},{4 ,5,6},{7,8,9}};
for (int[] pro : a){
for(int p : pro){
System.out.println(p);
}
}
<强>更新强>
仅限第一个阵列:
for (int pro : a[0]){
System.out.println(pro);
}
输出:
1
2
3
答案 2 :(得分:0)
我假设您想要在多维&#39; a&#39;中打印所有值。阵列。你需要两个嵌套的&#39; for&#39;循环来实现这一目标。 更改你的&#39; for&#39;循环到这个:
for(int [ ] pro : a) {
for(int p : pro){
System.out.println(p);
}
}
希望它能解决你的问题:)
修改强>
如果您只想打印这些阵列的第一个元素,您必须更改“&#39;循环到这个:
for(int [ ] pro : a){
System.out.println(pro[0]);
}
答案 3 :(得分:0)
&#34;请在一个forEach的帮助下打印每个数组的第一个元素 环路&#34;
最后,问题的定义!这样做:
for (int[] pro : a ){
System.out.println(pro[0]);
}