原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/12/16/2820842.html
英文出自 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html
for语句提供了一个紧凑的方式来遍历一个范围值。程序经常引用为"for循环",因为它反复循环,直到满足特定的条件。for语句的通常形式,表述如下:
for (initialization; termination; increment) { statement(s) }
使用该版本的for语句时,要记住:
- 初始化语句初始化循环;它执行一次作为循环的开始。
- 当结束表达式计算为false,循环结束。
- 自增表达式会在循环的每次迭代执行;该表达式在增量器,递减值,是完全可以接受的,
接下来的程序ForDemo,使用for语句的通用形式,输出1到10到标准输出:
class ForDemo { public static void main(String[] args){ for(int i=1; i<11; i++){ System.out.println("Count is: " + i); } } }
程序输出是:
Count is: 1 Count is: 2 Count is: 3 Count is: 4 Count is: 5 Count is: 6 Count is: 7 Count is: 8 Count is: 9 Count is: 10
注意:代码在初始化表达式声明变量。该变量的存活范围,从它的声明到for语句的块的结束。所以,它通用用在结束表达式和自增表达式。如果for语句的控制,不需要循环外部的变量,最好是在初始化块声明变量。名称为i,j,k经常用来控制for循环;在初始化表达式声明他们,限制他们的生命周期,减少错误。
for循环的三个表达式都是可选的,一个无限循环,可以这么写:
// infinite loop for ( ; ; ) { // your code goes here }
for语句还可以用来迭代 Collections and arrays,这个形式有时被称为for语句的theenhanced,可以用来让你的循环更加紧凑,易于阅读。为了说明这一点,考虑下面的阵列,它拥有数字1到10:
int[] numbers = {1,2,3,4,5,6,7,8,9,10};
下面的程序EnhancedForDemo,使用增强的for遍历数组:
class EnhancedForDemo { public static void main(String[] args){ int[] numbers = {1,2,3,4,5,6,7,8,9,10}; for (int item : numbers) { System.out.println("Count is: " + item); } } }
这个例子,变量item持有数字数组的当前值。程序的输出结果和之前一样:
Count is: 1 Count is: 2 Count is: 3 Count is: 4 Count is: 5 Count is: 6 Count is: 7 Count is: 8 Count is: 9 Count is: 10
尽可能使用这种形式的for替代传统的for形式。