今天总结一下for循环在java程序中的使用,先来看一下一般的for循环的使用方法:
for(int i=0;i<10;i++) {
System.out.println(i);
}
这里分别看一下这几种情况:
1. 三部分都为空
for(;;) {
System.out.println(0);
}
这个程序是个死循环,因为它缺少结束的条件。
2. 第二部分为空
for(int i=0;;i++) {
System.out.println(i);
}
这个程序也是死循环,i无限递增。
3. 第三部分为空
for(int i=0;i<10;) {
System.out.println(i);
}
这个程序也是死循环
4. 第二三部分为空
for(int i=0;;) {
System.out.println(i);
}
这个代码也是死循环
这是单个变量的写法,还可以使用多个变量:
for(int i=0,j=0;j<10&&i<10;i++,j++) {
System.out.println(i+j);
}
for循环除了以上的一般写法外,jdk5.0以后的版本都提供了增强for循环的特性,使用起来更加方便,比如我现在想遍历输出一个集合,就可以这样写;
List<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
for(String s:list) {
System.out.println(s);
}
这种写法要比上面的写法简单的多,而且只有一种写法,对于数组和实现了Iterator接口的集合,都可以使用这种增强for循环的方式来遍历。除了for循环外还有while循环和迭代器两种循环方式,对于上述集合,也可以使用下面这种迭代器的方式实现遍历:
Iterator<String> it = list.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
这种写法比增强for循环要复杂一些,其实增强for循环的出现就是为了替代迭代器,所以对于能使用增强for循环的集合就尽量使用增强for循环。增强for循环的底部实现其实就是迭代器,这个大家可以在编译好的class文件中发现,所以他俩在本质上是没有什么区别的,只是写法的难易程度不同而已。