在计算机编程中,循环用于重复执行一段代码。例如,如果您想显示一条消息 100 次,则可以使用循环。这只是一个简单的例子;通过循环您可以实现更多功能。
在上一篇教程中,您学习了 Java for 循环。在这里,您将学习 while
和 do...while
循环。
Java while 循环
Java while
循环用于在满足特定条件时运行特定代码。while
循环的语法为:
while (testExpression) {
// body of loop
}
这里,
while
循环会计算括号()
中的 **textExpression**。- 如果 **textExpression** 计算结果为
true
,则执行while
循环内的代码。 - 再次计算 **textExpression**。
- 此过程将继续进行,直到 **textExpression** 为
false
。 - 当 **textExpression** 计算结果为
false
时,循环停止。
要了解有关条件的更多信息,请访问 Java 关系运算符和 逻辑运算符。
while 循环的流程图

示例 1:显示从 1 到 5 的数字
// Program to display numbers from 1 to 5
class Main {
public static void main(String[] args) {
// declare variables
int i = 1, n = 5;
// while loop from 1 to 5
while(i <= n) {
System.out.println(i);
i++;
}
}
}
输出
1 2 3 4 5
以下是此程序的运行方式。
迭代 | 变量 | 条件:i | 操作 |
---|---|---|---|
第 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;
class Main {
public static void main(String[] args) {
int sum = 0;
// create an object of Scanner class
Scanner input = new Scanner(System.in);
// take integer input from the user
System.out.println("Enter a number");
int number = input.nextInt();
// while loop continues
// until entered number is positive
while (number >= 0) {
// add only positive numbers
sum += number;
System.out.println("Enter a number");
number = input.nextInt();
}
System.out.println("Sum = " + sum);
input.close();
}
}
输出
Enter a number 25 Enter a number 9 Enter a number 5 Enter a number -3 Sum = 39
在上面的程序中,我们使用了 Scanner 类从用户那里获取输入。这里,nextInt()
从用户那里获取整数输入。
while
循环会一直继续,直到用户输入负数。在每次迭代中,用户输入的数字都会被加到 sum
变量中。
当用户输入负数时,循环终止。最后,显示总和。
Java do...while 循环
do...while
循环与 while 循环相似。但是,do...while
循环的体会在测试表达式被检查之前执行一次。例如:
do {
// body of loop
} while(textExpression);
这里,
- 循环体首先被执行。然后计算 **textExpression**。
- 如果 **textExpression** 计算结果为
true
,则再次执行do
语句内的循环体。 - 再次计算 **textExpression**。
- 如果 **textExpression** 计算结果为
true
,则再次执行do
语句内的循环体。 - 此过程将继续进行,直到 **textExpression** 计算结果为
false
。然后循环停止。
do...while 循环的流程图

让我们看看 do...while
循环的工作原理。
示例 3:显示从 1 到 5 的数字
// Java Program to display numbers from 1 to 5
import java.util.Scanner;
// Program to find the sum of natural numbers from 1 to 100.
class Main {
public static void main(String[] args) {
int i = 1, n = 5;
// do...while loop from 1 to 5
do {
System.out.println(i);
i++;
} while(i <= n);
}
}
输出
1 2 3 4 5
以下是此程序的运行方式。
迭代 | 变量 | 条件:i | 操作 |
---|---|---|---|
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:正数的总和
// Java program to find the sum of positive numbers
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int sum = 0;
int number = 0;
// create an object of Scanner class
Scanner input = new Scanner(System.in);
// do...while loop continues
// until entered number is positive
do {
// add only positive numbers
sum += number;
System.out.println("Enter a number");
number = input.nextInt();
} while(number >= 0);
System.out.println("Sum = " + sum);
input.close();
}
}
输出 1
Enter a number 25 Enter a number 9 Enter a number 5 Enter a number -3 Sum = 39
在这里,用户输入一个正数,该数字被加到 sum 变量中。此过程将一直继续,直到输入负数。当输入负数时,循环终止,并显示总和,而不添加负数。
输出 2
Enter a number -8 Sum is 0
在这里,用户输入一个负数。测试条件将为 false
,但循环内的代码会执行一次。
无限 while 循环
如果循环的**条件**始终为 true
,则循环将无限次运行(直到内存用尽)。例如:
// infinite while loop
while(true){
// body of loop
}
这是无限 do...while
循环的一个示例。
// infinite do...while loop
int count = 1;
do {
// body of loop
} while(count == 1)
在上面的程序中,**textExpression** 始终为 true
。因此,循环体将无限次运行。
for 和 while 循环
当迭代次数已知时,使用 for
循环。例如:
for (int i = 1; i <=5; ++i) {
// body of loop
}
而 while
和 do...while
循环通常在迭代次数未知时使用。例如:
while (condition) {
// body of loop
}
另请阅读