# `for`语句

> 原文： [https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html)

`for`语句提供了一种迭代一系列值的简洁方法。程序员经常将其称为“for 循环”，因为它反复循环直到满足特定条件的方式。 `for`声明的一般形式可表示如下：

```
for (initialization; termination;
     increment) {
    statement(s)
}

```

使用此版本的`for`语句时，请记住：

*   _ 初始化 _ 表达式初始化循环;循环开始时，它执行一次。
*   当 _ 终止 _ 表达式求值为`false`时，循环终止。
*   每次迭代循环后调用 _ 增量 _ 表达式;这个表达式增加 _ 或 _ 递减一个值是完全可以接受的。

以下程序 [`ForDemo`](examples/ForDemo.java) 使用`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/index.html)和[数组](arrays.html)这种形式有时被称为 _ 增强 _ 语句，可以使用使您的循环更紧凑，易于阅读。要演示，请考虑以下数组，其中包含数字 1 到 10：

```
int[] numbers = {1,2,3,4,5,6,7,8,9,10};

```

以下程序 [`EnhancedForDemo`](examples/EnhancedForDemo.java) 使用增强的`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`语句的这种形式而不是一般形式。