实践验证
代码示例
public class StrongerFor {
public static void printa(int [] a) {
for(int each:a) {
System.out.print(each+" ");
}
System.out.println();
}
public static void main(String [] args) {
int []a = new int[5];
printa(a);
for(int i=0;i<5;i++) {
a[i]=i;
}
printa(a);
for(int each:a ) {
each=6;
}
printa(a);
}
}
代码输出
0 0 0 0 0
0 1 2 3 4
0 1 2 3 4
结果解释
第三行输出没有输出五个6,说明each=6这个赋值语句并没有执行,说明强化型for不能赋值。
疑问留存
在代码:
for(int each:a ) {
each=6;
}
中,编译器eclipse提示:each并没有使用(第一行的each报的提示)。
那意思是赋值语句被忽视了?还是有什么其他机理呢?