💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# Java `for`循环 > 原文: [https://www.programiz.com/java-programming/for-loop](https://www.programiz.com/java-programming/for-loop) #### 在本教程中,我们将借助示例学习如何在 Java 中使用`for`循环,并且还将学习循环在计算机编程中的工作方式。 在计算机编程中,循环用于重复特定的代码块,直到满足特定条件(测试表达式为`false`)为止。 例如, 想象一下,我们需要在屏幕上打印一个句子 50 次。 好吧,我们可以通过使用`print`语句 50 次(不使用循环)来做到这一点。 您需要打印一百万次句子怎么样? 您需要使用循环。 使用循环,我们可以只编写一次 print 语句,然后运行任意次。 这只是一个简单的示例,显示了循环在计算机编程中的重要性。 * * * ## Java `for`循环 Java 中`for`循环的语法为: ```java for (initialization; testExpression; update) { // codes inside for loop's body } ``` ### `for`循环的工作原理 1. `initialization`表达式只求值一次。 2. 然后,求值`testExpression`表达。 在这里,测试表达式是一个布尔表达式。 3. 如果将测试表达式求值为`true`,则将执行`for`循环体内的 代码。 然后执行`update`表达式。 再次求值测试表达式。 如果测试表达式为`true`,则执行`for`循环体内的代码,并执行更新表达式。 继续进行此过程,直到将测试表达式求值为`false`为止。 4. 如果将测试表达式求值为`false`,则`for`循环终止。 * * * ### `for`循环流程图 ![Java for Loop flowchart](https://img.kancloud.cn/c7/a5/c7a54f73dbd5f651cb0b0eaf4dd1119f_340x477.png "Working of for loop") `for`循环的原理 * * * ### 示例 1:`for`循环 ```java // Program to print a sentence 10 times class Loop { public static void main(String[] args) { for (int i = 1; i <= 10; ++i) { System.out.println("Line " + i); } } } ``` **输出**: ```java Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10 ``` 在上面的示例中,我们有 * **初始化表达式**:`int i = 1` * **测试表达式**:`i < = 10` * **更新表达式**:`++ i` 在此,最初`i`的值为 1。因此,测试表达式首次求值为`true`。 因此,将执行打印语句。 现在,将求值更新表达式。 每次求值更新表达式时,`i`的值增加 1。再次,求值测试表达式。 并且,重复相同的过程。 该过程一直进行到`i`为 11 时。当`i`为 11 时,测试表达式(`i <= 10`)为`false`,并且`for`循环终止。 要了解有关测试表达式及其求值方式的更多信息,请访问[关系式](/java-programming/operators#equality-relational "Java Relational Operator")和[逻辑运算符](/java-programming/operators#logical "Java Logical Operator")。 * * * ### 示例 2:`for`循环 ```java // Program to find the sum of natural numbers from 1 to 1000. class Number { public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 1000; ++i) { sum += i; // sum = sum + i } System.out.println("Sum = " + sum); } } ``` **输出**: ```java Sum = 500500 ``` 在这里,我们有一个名为`sum`的变量。 其初始值为`0`。 在`for`循环中,我们初始化了一个名为`i`的变量,其值为 1。 在`for`循环的每次迭代中, * `sum`变量被分配了值:`sum + i` * `i`的值增加 1 循环一直进行到`i`的值大于 1000 为止。为了获得更好的可视化效果, ```java 1st iteration: i = 1 and sum = 0+1 = 1 2nd iteration: i = 2 and sum = 1+2 = 3 3rd iteration: i = 3 and sum = 3+3 = 6 4th iteration: i = 4 and sum = 6+4 = 10 ... .. ... 999th iteration: i = 999 and sum = 498501 + 999 = 499500 1000th iteration: i = 1000 and sum = 499500 + 1000 = 500500 ``` * * * ### 无限循环 在使用循环时,我们应始终小心。 这是因为,如果我们错误地设置测试表达式以使其永远不会是`false`,则`for`循环将永远运行。 这称为无限循环。 例如, ```java // Infinite for Loop class Infinite { public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 10; --i) { System.out.println("Hello"); } } } ``` 在此,测试表达式(`i <= 10`)永远不会是`false`,并且`hello`不会打印无数次(至少在理论上是这样)。 **注意**:`for`语句中使用的初始化,更新和测试表达式是可选的。 这是无限`for`循环的另一个示例。 ```java for ( ; ; ) { } ``` * * * ### Java `for-each`循环 在 Java 中,有`for`循环的另一种语法可用于 [Java 数组](/java-programming/arrays "Java Arrays")和 [Java 集合](/java-programming/collections "Java Collections")(称为`for-each`循环)。 例如, ```java for (int a : array) { System.out.println(a); } ``` 要了解更多信息,请访问: [Java `for-each`循环](/java-programming/enhanced-for-loop "Java for-each Loop")