日期:2014-05-20 浏览次数:20756 次
import java.io.*; public class wrenwren { public static void main(String args[]) { int a[] ={ 1,2,3}; for(int i: a){ //疑问.为什么这里i没有初始化却能编译通过. System.out.println(a[i-1]); } } }
------解决方案--------------------
1、首先看看for each语法。。。
2、这样写很危险,你刚好是a[] = {1,2,3};
要是 a[] = {100,200,300}, 那访问
for(int i:a){
a[i-1]。。。越界。。。
}
------解决方案--------------------
for(int i : a)意为每次循环都int i = a[当前index];
这个i里装的就是a[当前index]的值...
如果是List就不容易混淆咩:
List<String> list = new ArrayList<String>();
list.add("wren4255");
list.add("lgg201");
for(String str : list)
{
System.out.println(str);
}
------解决方案--------------------
for(int i:a){
System.out.println(i);
}
这样就可以了,去看看jdk1.5 新特性上面有讲解。