主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

Java while 和 do...while 循环

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

whiledo...while都是 Java 中用于实现代码块重复执行的循环结构,二者的本质区别在于条件判断与代码执行的时序关系。

while 循环采用先判断后执行的逻辑流程,而do...while循环则采用先执行后判断的执行策略,这意味着无论循环条件是否成立,do...while 循环体内的代码都至少会被执行一次。


Java while 循环

Java 中 while 循环的语法结构如下:

while (BooleanExpression) {
    // while 循环体中的代码
}

while 循环的工作原理:

  • 执行布尔表达式(booleanExpression),它决定了循环是否继续执行。
  • 如果布尔表达式(booleanExpression)的值为 true,则执行while循环体内的代码。
  • 执行完循环体内的代码后,再次检查布尔表达式(booleanExpression)的值。
  • 如果布尔表达式(booleanExpression)的值仍为 true,则继续执行循环体内的代码;如果布尔表达式(booleanExpression)的值为 false,则结束循环。

while 循环流程图


while 循环实例

下面的示例程序演示了如何使用while循环打印指定次数的行信息:

java
复制
/**
 * 循环打印指定次数的行信息
 * 该类演示了使用while循环进行固定次数的输出操作
 */
public class LoopPrinter {
    public static void main(String[] args) {
        // 初始化行计数器
        int currentLine = 1;

        // 循环输出6次行信息
        while (currentLine <= 6) {
            System.out.println("这是第 " + currentLine + " 行");
            currentLine++;
        }
    }
}

执行程序后的输出结果:

这是第 1 行
这是第 2 行
这是第 3 行
这是第 4 行
这是第 5 行
这是第 6 行

在上面的示例中,我们可以看到循环结构的三个关键组成部分被清晰的定义:

  • 最初,此处i的值为 1。这时布尔表达式(booleanExpression)的计算结果为 true。因此,将执行 while 循环内的 print 语句。
  • 然后,使用++i语句,在每次迭代中将i值增加 1。
  • 经过 6 次迭代后,i 的值为 7,这时测试表达式(i <= 6)为 false,求和 while 循环终止。

要深入了解测试表达式及其评估方式,请查阅涉及关系运算符与逻辑运算符的 Java 运算符


Java do... while 循环

do...while 循环类似于while循环,但是有个关键区别,在于在检查测试表达式之前,会执行循环主体一次。

Java 中do... while循环的语法结构如下:

do {
    // do...while 循环体中的代码
} while (BooleanExpression);

do... while 循环的工作原理:

  • 执行循环体中的代码,然后执行布尔表达式(booleanExpression)。
  • 如果布尔表达式(booleanExpression)的值为 true,则继续执行循环体中的代码。
  • 执行完循环体内的代码后,再次检查布尔表达式(booleanExpression)的值。
  • 如果布尔表达式(booleanExpression)的值仍为 true,则继续执行循环体中的代码;如果布尔表达式(booleanExpression)的值为 false,则结束循环。

do...while 循环流程图


do...while 循环实例

下面的示例程序演示了如何使用do...while循环统计用户输入的字数总和:

java
复制
import java.util.Scanner;

/**
 * 数字累加器
 * 该程序接收用户输入的数字并进行累加,直到用户输入0为止
 */
public class NumberSumCalculator {
    public static void main(String[] args) {
        // 初始化累加和
        Double number, sum = 0.0;

        // 创建 Scanner 对象用于接收用户输入
        Scanner input = new Scanner(System.in);

        do {
            System.out.print("输入一个数字: "); // 接收用户输入的数字
            inputNumber = input.nextDouble();
            sum += inputNumber; // 累加输入的数字
        } while (inputNumber != 0.0);  // 当输入为 0 时退出循环

        System.out.println("总和 = " + sum); // 输出最终累加结果
    }
}

执行程序后的输出结果:

输入一个数字: 2.5
输入一个数字: 23.3
输入一个数字: -4.3
输入一个数字: 0
总和 = 21.5

无限循环

在循环结构的使用过程中,我们必须始终保持谨慎。原因在于,若错误地将测试表达式设置为永远无法满足退出条件(即始终为 true),while 循环及do...while循环将会陷入无限执行的状态,无法正常终止。

下面是一个简单的while无限循环实例:

int i = 100;
while (i == 100) {
   System.out.print("这是一个无限循环的 while 循环实例!");
}

无限do...while循环的工作方式与while循环类似。



评论区 0
发表评论