int num1[][]={{1},{45,66},{23,67,11},{64,342,65,71}};
第一段: for(int m[]:num1){
for(int n:m){
Arrays.sort(m);
System.out.print(n);
}
System.out.println();
}
第二段 for(int i=0;i<num1.length;i++){
for(int j=0;j<num1[i].length;j++){
Arrays.sort(num1[i]);
System.out.print(num1[i][j]);
}
System.out.println();
}
这两端都是对二维数组排序,数组是一样的。为什么第一段的结果是:
1
4566
232367
646571342 (很明显这里出错了,因为第三行出现了两个23.原本是23,67,11)
第二段是
1
4566
112367
646571342
(很明显这段是正确的)
问题在于,我不知道第一段错在哪里。
谁帮我指正一下呢?不甚感激!
小弟是自学JAVA,问这么肤浅的问题让大家笑话了。
foreach到底是怎么运行的啊?
为什么用for双层循环又可以呢?
foreach是每循环一次。。。取里面一个数。。。
其实你后面那个最好也把sort写在第二个循环外的。。
、
对于foreach来说。。。第一次循环的时候还没有排序。。。n就获取了第一个值。。。就是23
后面循环的时候就已经排好序了。。。。取第二值是排了序的。。。排好序的第二值就是23
所以就会得到结果232367了
不知道有没有说清楚。。。你明白了没有。。。