一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

15-Java while 与 do...while循环

时间:2026-06-03 09:45:01 编辑:袖梨 来源:一聚教程网

Java while 和 do…while循环

本教程通过多个实例,详细讲解Java中while与do...while循环的语法、执行流程及应用场景,帮助读者快速掌握循环结构的使用方法。

在计算机编程中,循环结构用于反复执行某段代码,直到特定条件(即测试表达式)不再成立(值为false)。例如,

假设我们需要在屏幕上打印一个句子50次。不使用循环时,需要编写50次print语句。但若需要打印一百万次呢?此时必须借助循环。通过循环,我们只需编写一次print语句,即可按需重复执行任意次数。

以上简单示例说明了循环在编程中的核心地位。Java支持三种循环类型:

Java while循环

Java中while循环的语法为:

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

while循环如何工作?

在上述语法中,括号内的测试表达式(testExpression)是一个布尔表达式。若测试表达式(testExpression)的结果为true,

  1. while循环内的语句将被执行。

  2. 随后,再次评估测试表达式(testExpression)。

上述过程持续进行,直到测试表达式的结果变为false。若测试表达式结果为false,

  1. 则while循环终止。

While循环流程图

示例1:while循环

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

输出

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

在上述示例中,测试表达式为(i <= 10),用于判断i的值是否小于或等于10。

初始时,i的值为1,测试表达式(testExpression)结果为true,因此while循环内的print语句得以执行。

注意while循环内的语句

 ++i;

该语句使i的值在每次迭代中增加1。经过10次迭代后,i变为11,此时测试表达式(i <= 10)为false,while循环结束。

示例2:Java while循环

//编程以查找1到100之间的自然数之和。
class AssignmentOperator {
    public static void main(String[] args) {
      
        int sum = 0, i = 100;
	   
        while (i != 0) {
            sum += i;     // 等同于 sum = sum + i;
            --i;
        }
	   
        System.out.println("Sum = " + sum);
    }
}

输出

Sum = 5050

此处,我们声明了两个变量sum和i,初始值分别为0和100。

在while循环的每次迭代中,

  1. 为sum变量赋值为sum + i

  2. i的值减1

循环持续进行,直到i的值变为0为止。

1st 重复: i = 100, sum = 0+100 = 100, 同时 --i = 99
2nd 重复: i = 99, sum = 100+99 = 199, 同时 --i = 98
3rd 重复: i = 98, sum = 199+98 = 297, 同时 --i = 97
... .. ...
... .. ...
99th 重复: i = 2, sum = 5047+2 = 5049, 同时 --i = 1
100th 重复: i = 1, sum = 5049+1 = 5050, 同时 --i = 0

Java do… while循环

do…while循环与while循环类似,但有一个关键区别:它在检查测试表达式之前,会先执行一次循环体。

do…while循环的语法如下:

do {
   // do...while循环体内的代码
} while (testExpression);

do… while循环如何工作?

do…while循环会先执行一次循环体(此时尚未检查测试表达式)。之后,才评估测试表达式。

若测试表达式结果为true,则再次执行循环体中的代码,并重新计算测试表达式。此过程重复进行,直至测试表达式结果为false。

当测试表达式为false时,do…while循环停止。

do … while循环流程图

示例3:do … while循环

下面的程序计算用户输入的数字总和,直到用户输入0为止。

import java.util.Scanner;class Sum {
    public static void main(String[] args) {
	   
        Double number, sum = 0.0;
        //创建一个Scanner类的对象
        Scanner input = new Scanner(System.in);        do {            //接受用户的输入
            System.out.print("输入一个数字: ");
            number = input.nextDouble();
            sum += number;
        } while (number != 0.0);  //测试表达
	   
        System.out.println("Sum = " + sum);
    }
}

输出

输入一个数字: 2.5
输入一个数字: 23.3
输入一个数字: -4.2
输入一个数字: 3.4
输入一个数字: 0
Sum = 25.0

无限循环

使用循环时需格外谨慎。若测试表达式设置不当,使其永不为false,则while和do…while循环将无限执行。

此类情况称为无限while或do…while循环。例如,

//无限while循环
while (true) {
   //while循环主体
}

再举一个实例

//无限while循环
int i = 100;
while (i == 100) {
   System.out.print("Hey!");
}

综上,while与do...while循环均用于重复执行代码,区别在于do...while确保至少执行一次循环体。掌握这两种循环结构,能有效处理编程中的重复性任务。


热门栏目