
Java while 和 do...while循环
在本教程中,我们将借助示例来学习如何在Java中使用while和do...while循环,并且还将学习while循环在计算机编程中的工作方式
在计算机编程中,循环用于重复特定的代码块,直到满足特定条件(测试表达式为false)为止。例如,
想象一下,我们需要在屏幕上打印一个句子50次。好吧,我们可以通过使用print语句50次(不使用循环)来做到这一点。您需要打印一百万次句子怎么样?您需要使用循环。使用循环,我们可以只编写一次print语句,然后运行任意次数。
这只是一个简单的示例,显示了循环在计算机编程中的重要性。Java中有3种循环类型:
Java while循环
Java 中 while循环的语法为:
bash
while (testExpression) {
// while循环体中的代码
}
while循环如何工作?
在以上语法中,括号内的测试表达式(testExpression)为布尔表达式。如果测试表达式(testExpression)的计算结果为true,
-
while循环内的语句将被执行。
-
然后,再次评估测试表达式(testExpression)。
这个过程一直进行到测试表达式被评估为false为止。如果测试表达式的计算结果为false,
- 则while循环被终止。
While循环流程图

示例1:while循环
bash
//程序打印行10次
class Loop {
public static void main(String[] args) {
int i = 1;
while (i <= 10) {
System.out.println("Line " + i);
++i;
}
}
}
输出:
bash
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循环内的语句
bash
++i;
该语句在每次迭代中将i值增加1。经过10次迭代后,i的值为11。然后测试表达式(i <= 10)为false,求和while循环终止。
示例2:Java while循环
bash
//编程以查找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);
}
}
输出:
bash
Sum = 5050
在这里,我们有两个名为sum,i的变量,其初始值分别为0和100。
在while循环的每次迭代中,
-
为sum变量分配值:sum + i
-
i的值减少1
循环一直进行到的值i等于0 为止。
bash
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循环的语法。
bash
do {
// do...while循环体内的代码
} while (testExpression);
do... while循环如何工作?
do...while循环主体执行一次(在检查测试表达式之前)。只有这样,测试表达式才会被检查。
如果测试表达式被计算为true,则执行循环体中的代码,并再次计算测试表达式。这个过程一直进行下去,直到测试表达式被计算为false为止。
当测试表达式为时false,do...while循环终止。
do ... while循环流程图

示例3:do ... while循环
下面的程序计算用户输入的数字总和,直到用户输入0。
bash
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);
}
}
输出:
bash
输入一个数字: 2.5
输入一个数字: 23.3
输入一个数字: -4.2
输入一个数字: 3.4
输入一个数字: 0
Sum = 25.0
无限循环
在使用循环时,我们应始终小心。 这是因为如果我们错误地设置了测试表达式,使其永远不会为false,则while和do ... while循环将永远运行。
这就是所谓的无限while和do...while循环。例如,
bash
//无限while循环
while (true) {
//while循环主体
}
再举一个实例
bash
//无限while循环
int i = 100;
while (i == 100) {
System.out.print("Hey!");
}
无限do...while循环的工作方式与while循环类似。
🎁 福利时间
如果你正在备战面试或者想要学习其他知识,给大家推荐一个宝藏知识库,作者整理了一些列 Java 程序员需要掌握的核心知识,有需要的自取不谢。
知识库地址:farerboy.com/
