原文: https://beginnersbook.com/2015/03/for-loop-in-java-with-example/

循环用于重复执行一组语句,直到满足特定条件。在 Java 中,我们有三种类型的基本循环:forwhiledo-while。在本教程中,我们将学习如何在 Java 中使用for循环。

for循环的语法:

  1. for(initialization; condition ; increment/decrement)
  2. {
  3. statement(s);
  4. }

for循环的执行流程

当程序执行时,解释器总是跟踪将要执行的语句。我们将其称为控制流程或程序的执行流程。

Java 中的`for`循环 - 图1

第一步:在for循环中,初始化只发生一次,这意味着for循环的初始化部分只执行一次。

第二步:在每次迭代时求值for循环中的条件,如果条件为真则执行循环体内的语句。一旦条件返回falsefor循环中的语句就不会执行,并且控制在for循环后被转移到程序中的下一个语句。

第三步:每次执行for循环体后,for循环的递增/递减部分执行更新循环计数器

第四步:第三步后,控制跳转到第二步,重新求值条件。

简单的for循环的示例

  1. class ForLoopExample {
  2. public static void main(String args[]){
  3. for(int i=10; i>1; i--){
  4. System.out.println("The value of i is: "+i);
  5. }
  6. }
  7. }

该程序的输出是:

  1. The value of i is: 10
  2. The value of i is: 9
  3. The value of i is: 8
  4. The value of i is: 7
  5. The value of i is: 6
  6. The value of i is: 5
  7. The value of i is: 4
  8. The value of i is: 3
  9. The value of i is: 2

在上面的程序中:

  • int i = 1是初始化表达式
  • i > 1是条件(布尔表达式)
  • i--递减运算

无限循环

布尔表达式和递增/递减操作协调的重要性:

  1. class ForLoopExample2 {
  2. public static void main(String args[]){
  3. for(int i=1; i>=1; i++){
  4. System.out.println("The value of i is: "+i);
  5. }
  6. }
  7. }

这是一个无限循环,因为条件永远不会返回false。初始化步骤是将变量i的值设置为 1,因为我们正在递增i的值,它总是大于 1(布尔表达式:i > 1)所以它永远不会返回false。这最终会导致无限循环条件。因此,重要的是看到布尔表达式和递增/递减操作之间的协调以确定循环是否将在某个时间点终止。

这是无限for循环的另一个例子:

  1. // infinite loop
  2. for ( ; ; ) {
  3. // statement(s)
  4. }

for循环迭代数组的示例:

这里我们使用for循环迭代并显示数组元素。

  1. class ForLoopExample3 {
  2. public static void main(String args[]){
  3. int arr[]={2,11,45,9};
  4. //i starts with 0 as array index starts with 0 too
  5. for(int i=0; i<arr.length; i++){
  6. System.out.println(arr[i]);
  7. }
  8. }
  9. }

输出:

  1. 2
  2. 11
  3. 45
  4. 9

增强for循环

当您想要迭代数组/集合时,增强的for循环很有用,它易于编写和理解。

让我们采用上面写的相同的例子,并使用增强的for循环重写它。

  1. class ForLoopExample3 {
  2. public static void main(String args[]){
  3. int arr[]={2,11,45,9};
  4. for (int num : arr) {
  5. System.out.println(num);
  6. }
  7. }
  8. }

输出:

  1. 2
  2. 11
  3. 45
  4. 9

注意:在上面的例子中,我在增强的for循环中声明了numint。这将根据数组的数据类型而改变。例如,字符串类型的增强for循环如下所示:

  1. String arr[]={"hi","hello","bye"};
  2. for (String str : arr) {
  3. System.out.println(str);
  4. }

查看与 for 循环相关的这些 java 编程实例

  1. Java 程序:使用for循环查找自然数之和
  2. Java 程序:使用循环查找数字的阶乘
  3. Java 程序:使用for循环打印 Fibonacci 序列