For语句提供了一种紧凑的方法来迭代一系列值。程序员通常将其称为“ for 循环”,因为它以这种方式重复循环,直到满足特定的条件。For 语句的一般形式可表示如下:
for (initialization; termination; increment) { statement(s) }
在使用这个版本的 for 语句时,请记住:
- 那个 表达式初始化循环; 在循环开始时执行一次
- 当 表达式的计算结果为 循环终止
- 那个 表达式在通过循环的每次迭代之后被调用; 这个表达式递增是完全可以接受的 减去一个值
下面的程序 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 循环的三个表达式是可选的; 可以按如下方式创建无限循环:
// infinite loop for ( ; ; ) { // your code goes here }
For 语句还有另一个表单,用于通过集合和数组进行迭代。这种形式有时被称为增强的 for 语句,可用于使循环更紧凑、更易于阅读。要进行演示,请考虑以下数组,其中包含数字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); } } }
在此示例中,变量项保存数字数组中的当前值。这个程序的输出和以前一样:
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 语句的这种形式,而不是一般形式。