Java for循环

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

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

Java for循环

Java 中for循环的语法是:

for (initialization; testExpression; update)
{
    // 循环体内的代码
}

for循环的工作

  1. 初始化(initialization)表达式只执行一次。

  2. 然后,评估测试表达式(testExpression)。在这里,测试表达式(testExpression)是一个布尔表达式。

  3. 如果测试表达式(testExpression)的计算结果为true,则执行for循环体内的代码。

  4. 然后执行更新表达式(update)。

  5. 再次,评估测试表达式(initialization)。

  6. 如果测试表达式为true,则执行for循环体内的代码,并继续执行更新表达式(update)。

  7. 这个过程一直进行到测试表达式(testExpression)被评估为false时为止。

  8. 如果测试表达式(testExpression)的计算结果为false,则for循环终止。

for循环流程图


1.jpg
for循环的工作流程图


示例:for循环

//程序打印一个句子十次
class Loop {
    public static void main(String[] args) {
      
        for (int i = 1; i <= 10; ++i) {
            System.out.println("Line " + i);
        }
    }
}

输出:

Line 1
Line 2
Line 3
...

在上面的示例中,我们有

  • 初始化表达式:int i = 1

  • 测试表达式:i <= 10

  • 更新表达式:++ i

在这里,i最初的值是1。因此,测试表达式第一次求值为true。所以,将执行打印语句。现在将评估更新表达式。

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

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

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

示例:for循环

//程序查找从1到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);
    }
}

输出:

Sum = 500500

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

在for循环的每次迭代中,

  • 为sum变量分配值:sum + i

  • i的值增加1

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

1 重复: i = 1 同时 sum = 0+1 = 1
2 重复: i = 2 同时 sum = 1+2 = 3
3 重复: i = 3 同时 sum = 3+3 = 6
... .. ...

999 重复: i = 999 同时 sum = 498501 + 999 = 499500
1000 重复: i = 1000 同时 sum = 499500 + 1000 = 500500

无限循环

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

这称为无限循环。例如,

//无限循环
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 ( ; ; ) {

}

Java for-each循环(遍历循环)

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

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

使用建议:

需要循环数组结构的数据时,建议使用普通for循环,因为for循环采用下标访问,对于数组结构的数据来说,采用下标访问比较好。

 需要循环链表结构的数据时,一定不要使用普通for循环,这种做法很糟糕,数据量大的时候有可能会导致系统崩溃。

编程笔记 » Java for循环