Java while 循环

在计算机编程中,循环用于重复运行代码块。在本教程中,我们将通过示例介绍如何在 Java 中使用 while 和 do while 循环。

在本教程中,我们将通过示例介绍如何在 Java 中使用 while 和 do while 循环。

在计算机编程中,循环用于重复运行代码块。例如,如果您想将消息显示 100 次,则可以使用循环。这只是一个简单的例子;您可以使用循环实现更多功能。

在前面的教程中,我们介绍了 Java for 循环Java for each 循环。在这里,我们要了解 whiledo...while 循环,同样可是实现重复运行代码。

Java while 循环

Java while 循环只要满足指定的条件,就会运行循环体。

while 循环语法

while (testExpression) {
    // body of loop
}

说明:

  1. 计算测试条件 textExpression
  2. 如果 textExpression 的计算结果为 true ,则执行 while 循环体内的代码。
  3. 再次计算测试条件 textExpression
  4. 如果 textExpression 的计算结果为 true ,则执行 while 循环体内的代码。
  5. 这个过程一直持续到 textExpressionfalse,循环停止。

要了解循环的测试条件,需要首先了解关系运算符和逻辑运算符的知识。

while 循环流程图

Java while 循环流程图

Java中while循环的流程图
Java中while循环的流程图

示例 1:显示从 1 到 5 的数字

public class Main {
  public static void main(String[] args) {

    // 声明变量
    int i = 1, n = 5;

    // 从 1 到 5
    while(i <= n) {
      System.out.println(i);
      i++;
    }
  }
}

输出

1
2
3
4
5

以下是程序的循环迭代原理:

迭代 变量 条件:i <= n 执行
1 i = 1 n = 5 true 打印 1;i 增加到 2
2 i = 2 n = 5 true 打印 2;i 增加到 3
3 i = 3 n = 5 true 打印 3;i 增加到 4
4 i = 4 n = 5 true 打印 4;i 增加到 5
5 i = 5 n = 5 true 打印 5;i 增加到 6
6 i = 6 n = 5 false 循环终止

示例 2:仅正数之和

// Java program to find the sum of positive numbers
import java.util.Scanner;

public class Main {
  public static void main(String[] args) {

    int sum = 0;

    // 创建 Scanner 对象获取用户输入
    Scanner input = new Scanner(System.in);

    // 获取用户输入的数字
    System.out.print("输入一个数字:");
    int number = input.nextInt();

    // 循环提示用户输入数字,直到用户输入了负数退出循环
    while (number >= 0) {
      sum += number;

      System.out.print("输入一个数字:");
      number = input.nextInt();
    }

    System.out.println("Sum = " + sum);
    input.close();
  }
}

输出

输入一个数字:1
输入一个数字:2
输入一个数字:3
输入一个数字:4
输入一个数字:-1
Sum = 10

在上面的程序中,我们使用了 Scanner 类来获取用户的输入。在这里, nextInt() 从用户那里获取整数输入。

while 循环会一直提示用户继续输入,直到用户输入一个负数。在每次迭代期间,用户输入的数字都会累加到 sum 变量中。

当用户输入负数时,循环终止。最后,显示总和。

Java do…while 循环

do...while 循环类似于 while 循环。但是, do...while 循环体在检查测试条件之前执行一次,也就是说 do...while 循环至少执行一次循环体。

do…while 循环语法

do {
    // body of loop
} while(textExpression)

这里,

  1. 执行循环体。
  2. 计算测试条件 textExpression
  3. 如果 textExpression 的计算结果为 true ,则再次执行循环体。
  4. 再次计算测试条件 textExpression
  5. 如果 textExpression 的计算结果为 true ,则再次执行循环体。
  6. 这个过程一直持续到 textExpression 的计算结果为 false,然后循环停止。

do…while 循环流程图

Java do while 循环流程图

Java 中 do&hellip;while 循环的流程图
Java 中 do...while 循环的流程图

示例 3:显示 1 到 5 的数字

public class Main {
  public static void main(String[] args) {

    int i = 1, n = 5;

    do {
      System.out.println(i);
      i++;
    } while(i <= n);
  }
}

输出

1
2
3
4
5

这是该程序的工作原理。

迭代 变量 条件:i <= n 执行
i = 1 n = 5 没有检查 打印 1; i 增加到 2。
1 i = 2 n = 5 true 打印 2; i 增加到 3。
2 i = 3 n = 5 true 打印 3; i 增加到 4。
3 i = 4 n = 5 true 打印 4; i 增加到 5。
4 i = 5 n = 5 true 打印 5; i 增加到 6。
5 i = 6 n = 5 false 循环终止

示例 4:正数之和

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {

    int sum = 0;
    int number = 0;

    // 创建 Scanner 对象获取用户输入
    Scanner input = new Scanner(System.in);

    // 循环提示用户输入数字,直到用户输入了负数退出循环
    do {
      sum += number;
      System.out.println("输入一个数字");
      number = input.nextInt();
    } while(number >= 0);

    System.out.println("Sum = " + sum);
    input.close();
  }
}

输出 1

输入一个数字:1
输入一个数字:2
输入一个数字:3
输入一个数字:4
输入一个数字:-1
Sum = 10

在这里,用户输入一个正数,该数被加到 sum 变量。这个过程一直持续到用户输入负数。当数字为负数时,循环终止并显示总和。

输出 2

输入一个数字:-1
Sum = 0

在这里,用户输入一个负数。测试条件将是 false 但循环内的代码执行一次。

无限循环

如果循环的条件总是 true ,则循环运行无限次(直到内存已满)。例如,

// 无限 while 循环
while(true){
  // body of loop
}

这是一个无限 do...while 循环的例子。

// 无限 do...while 循环
int count = 1;
do {
   // body of loop
} while(count == 1)

在上述程序中,测试条件始终为 true ,因此循环体将运行无限次。

for 和 while 循环

for 循环一般在已知迭代次数时使用,例如:

for (let i = 1; i <=5; ++i) {
  // body of loop
}

whiledo...while 循环一般在迭代次数未知时使用,例如:

while (condition) {
  // body of loop
}