这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。
for语句
for语句为根据一个范围内的值进行迭代提供了方便。程序员经常把它叫做for循环是因为它在满足特定条件之前会一直执行循环。常见for语句的表达形式如下所示:
for(initialization;termination;increment){
statement(s)
}
当使用这个版本的for语句时,要注意:
- initialization 表达式会在循环开始之前,执行一次
- 当termination表达式返回false时,循环终止
- increment表达式在每次迭代体执行完后执行,推荐的表达式是对某个变量自增或者自减
下面的示例使用普通版本的for语句打印数字1到10:
class ForDemo{
public static void main(String[] args){
for(int count = 1;count <11;count++){
System.out.println("Count is : " +count);
}
}
}
注意下代码中initialization表达式部分是怎么声明一个变量的,该变量的生命周期从声明开始直到for语句块的结尾,所以在termination和increment表达式中都可以使用这个变量。如果控制for语句的变量在循环外不会用到,那么最好是在initialization表达式中声明该变量。常见的i,j,k都是for循环中声明的变量名,在initialization表达式中声明这些变量限制了其作用范围从而减少错误。
for语句中的三个表达式都是可选的,如下将实现一个无限循环:
// infinite loop
for(;;){
//your code goes here
}
for语句针对集合或数组还有另外一种迭代形式,这种形式一般被称为for语句的加强版,它能使for语句更整洁也更便于阅读。为了向你演示这个特性,考虑下下面这个数组,它存储了数字1~10:
int[] numbers = {1,2,3,4,5,6,7,8,9,10};
下面的示例演示了使用加强版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);
}
}
}
输出如下:
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循环。