原文: https://www.programiz.com/java-programming/for-loop

在本教程中,我们将借助示例学习如何在 Java 中使用for循环,并且还将学习循环在计算机编程中的工作方式。

在计算机编程中,循环用于重复特定的代码块,直到满足特定条件(测试表达式为false)为止。 例如,

想象一下,我们需要在屏幕上打印一个句子 50 次。 好吧,我们可以通过使用print语句 50 次(不使用循环)来做到这一点。 您需要打印一百万次句子怎么样? 您需要使用循环。 使用循环,我们可以只编写一次 print 语句,然后运行任意次。

这只是一个简单的示例,显示了循环在计算机编程中的重要性。


Java for循环

Java 中for循环的语法为:

  1. for (initialization; testExpression; update)
  2. {
  3. // codes inside for loop's body
  4. }

for循环的工作原理

  1. initialization表达式只求值一次。
  2. 然后,求值testExpression表达。 在这里,测试表达式是一个布尔表达式。
  3. 如果将测试表达式求值为true,则将执行for循环体内的
    代码。
    然后执行update表达式。
    再次求值测试表达式。
    如果测试表达式为true,则执行for循环体内的代码,并执行更新表达式。
    继续进行此过程,直到将测试表达式求值为false为止。
  4. 如果将测试表达式求值为false,则for循环终止。

for循环流程图

Java `for`循环 - 图1

for循环的原理


示例 1:for循环

  1. // Program to print a sentence 10 times
  2. class Loop {
  3. public static void main(String[] args) {
  4. for (int i = 1; i <= 10; ++i) {
  5. System.out.println("Line " + i);
  6. }
  7. }
  8. }

输出

  1. Line 1
  2. Line 2
  3. Line 3
  4. Line 4
  5. Line 5
  6. Line 6
  7. Line 7
  8. Line 8
  9. Line 9
  10. Line 10

在上面的示例中,我们有

  • 初始化表达式int i = 1
  • 测试表达式i < = 10
  • 更新表达式++ i

在此,最初i的值为 1。因此,测试表达式首次求值为true。 因此,将执行打印语句。 现在,将求值更新表达式。

每次求值更新表达式时,i的值增加 1。再次,求值测试表达式。 并且,重复相同的过程。

该过程一直进行到i为 11 时。当i为 11 时,测试表达式(i <= 10)为false,并且for循环终止。

要了解有关测试表达式及其求值方式的更多信息,请访问关系式逻辑运算符


示例 2:for循环

  1. // Program to find the sum of natural numbers from 1 to 1000.
  2. class Number {
  3. public static void main(String[] args) {
  4. int sum = 0;
  5. for (int i = 1; i <= 1000; ++i) {
  6. sum += i; // sum = sum + i
  7. }
  8. System.out.println("Sum = " + sum);
  9. }
  10. }

输出

  1. Sum = 500500

在这里,我们有一个名为sum的变量。 其初始值为0。 在for循环中,我们初始化了一个名为i的变量,其值为 1。

for循环的每次迭代中,

  • sum变量被分配了值:sum + i
  • i的值增加 1

循环一直进行到i的值大于 1000 为止。为了获得更好的可视化效果,

  1. 1st iteration: i = 1 and sum = 0+1 = 1
  2. 2nd iteration: i = 2 and sum = 1+2 = 3
  3. 3rd iteration: i = 3 and sum = 3+3 = 6
  4. 4th iteration: i = 4 and sum = 6+4 = 10
  5. ... .. ...
  6. 999th iteration: i = 999 and sum = 498501 + 999 = 499500
  7. 1000th iteration: i = 1000 and sum = 499500 + 1000 = 500500

无限循环

在使用循环时,我们应始终小心。 这是因为,如果我们错误地设置测试表达式以使其永远不会是false,则for循环将永远运行。

这称为无限循环。 例如,

  1. // Infinite for Loop
  2. class Infinite {
  3. public static void main(String[] args) {
  4. int sum = 0;
  5. for (int i = 1; i <= 10; --i) {
  6. System.out.println("Hello");
  7. }
  8. }
  9. }

在此,测试表达式(i <= 10)永远不会是false,并且hello不会打印无数次(至少在理论上是这样)。

注意for语句中使用的初始化,更新和测试表达式是可选的。 这是无限for循环的另一个示例。

  1. for ( ; ; ) {
  2. }

Java for-each循环

在 Java 中,有for循环的另一种语法可用于 Java 数组Java 集合(称为for-each循环)。 例如,

  1. for (int a : array) {
  2. System.out.println(a);
  3. }

要了解更多信息,请访问: Java for-each循环