日期: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){
System.out.println(a[i-1]);
}
}
}

这样写对么??
a[i-1] 感觉有点别扭

------解决方案--------------------


System.out.println(i);


这样就可以了,你那么写是画蛇添足式的做法,语法上已经帮你做了这些了。
------解决方案--------------------
i指的是数组中的某个值吧~~比如说这里
i最开始是1,然后是2。。。。是这段程序别扭吧
------解决方案--------------------
要么你把for写全了,不然确实很别扭的,一般遍历都是以index为0开始的
------解决方案--------------------
这是JAVA中JDK5.0版本之后提出来的.其一般形式:
for(类型 标识符:可迭代的表达式) 语句;
------解决方案--------------------
Java code

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 新特性上面有讲解。