Java while 和 do...while 循环
提示
- while循环基础:Java中的
while
循环在给定条件为真时重复执行代码块,循环停止时条件为假。 - do...while循环特性:
do...while
循环至少执行一次循环体,然后根据条件判断是否继续执行,适用于至少执行一次循环的场景。 - for与while循环的选择:当迭代次数已知时,通常使用
for
循环;而while
或do...while
循环适用于迭代次数未知的情况。
在计算机编程中,循环用于重复执行一段代码。例如,如果你想显示一条消息 100 次,那么你可以使用循环。这只是一个简单的例子;使用循环你可以实现更多功能。
在之前的教程中,你学习了 Java for 循环。这里,你将学习 while
和 do...while
循环。
Java while 循环
Java while
循环用于在满足特定条件时运行特定代码。while
循环的语法是:
while (测试表达式) {
// 循环体
}
这里,
while
循环评估括号()
内的 测试表达式。- 如果 测试表达式 计算结果为
true
,则执行while
循环内的代码。 - 测试表达式 会再次被评估。
- 此过程持续进行,直到 测试表达式 为
false
。 - 当 测试表达式 计算结果为
false
时,循环停止。
要了解更多关于条件的信息,请访问 Java 关系 和 逻辑运算符。
while 循环的流程图
示例 1:显示 1 到 5 的数字
// 程序用于显示 1 到 5 的数字
class Main {
public static void main(String[] args) {
// 声明变量
int i = 1, n = 5;
// 从 1 到 5 的 while 循环
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 程序用于计算正数的总和
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int sum = 0;
// 创建 Scanner 类的对象
Scanner input = new Scanner(System.in);
// 从用户那里输入一个整数
System.out.println("请输入一个数字");
int number = input.nextInt();
// 只要输入的数字是正数,while 循环就继续
while (number >= 0) {
// 只加正数
sum += number;
System.out.println("请输入一个数字");
number = input.nextInt();
}
System.out.println("总和 = " + sum);
input.close();
}
}
输出
请输入一个数字
25
请输入一个数字
9
请输入一个数字
5
请输入一个数字
-3
总和 = 39
在上述程序中,我们使用了 Scanner 类 来从用户那里获取输入。这里,nextInt()
方法用于从用户获取整数输入。
只要用户输入的是正数,while
循环就会继续。在每次迭代过程中,用户输入的数字都会被加到 sum
变量中。
当用户输入负数时,循环终止。最后,显示总和。
Java do...while 循环
do...while
循环与 while 循环相似。然而,do...while
循环在检查测试表达式之前会先执行一次循环体。例如,
do {
// 循环体
} while(测试表达式);
这里,
- 首先执行循环体,然后评估 测试表达式。
- 如果 测试表达式 计算结果为
true
,则do
语句内的循环体再次执行。 - 测试表达式 再次被评估。
- 如果 测试表达式 计算结果为
true
,则do
语句内的循环体再次执行。 - 这个过程持续进行,直到 测试表达式 为
false
。然后循环停止。
do...while 循环的流程图
让我们看看 do...while
循环是如何工作的。
示例 3:显示 1 到 5 的数字
// Java 程序用于显示 1 到 5 的数字
import java.util.Scanner;
// 程序用于计算 1 到 100 的自然数之和。
class Main {
public static void main(String[] args) {
int i = 1, n = 5;
// 从 1 到 5 的 do...while 循环
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 | 打印 6。i 增加到 6。 |
第5次 | i = 6 n = 5 | false | 循环终止 |
示例 4:正数之和
// Java 程序用于计算正数之和
import java.util.Scanner;
class Main {
public static void main(String[] args) {
int sum = 0;
int number = 0;
// 创建 Scanner 类的对象
Scanner input = new Scanner(System.in);
// 只要输入的数字是正数,do...while 循环就继续
do {
// 只加正数
sum += number;
System.out.println("请输入一个数字");
number = input.nextInt();
} while(number >= 0);
System.out.println("总和 = " + sum
);
input.close();
}
}
输出 1
请输入一个数字
25
请输入一个数字
9
请输入一个数字
5
请输入一个数字
-3
总和 = 39
这里,用户输入一个正数,该数字被加到 sum
变量中。这个过程持续进行,直到数字为负数。当数字为负数时,循环终止并显示总和,不加上负数。
输出 2
请输入一个数字
-8
总和为 0
这里,用户输入了一个负数。测试条件将为 false
,但循环内的代码会执行一次。
无限 while 循环
如果循环的 条件 始终为 true
,那么循环将无限次运行(直到内存满)。例如,
// 无限 while 循环
while(true){
// 循环体
}
以下是一个无限 do...while
循环的例子。
// 无限 do...while 循环
int count = 1;
do {
// 循环体
} while(count == 1)
在上述程序中,测试表达式 始终为 true
。因此,循环体将无限次运行。
for 和 while 循环
当迭代次数已知时,使用 for
循环。例如,
for (let i = 1; i <=5; ++i) {
// 循环体
}
当迭代次数未知时,通常使用 while
和 do...while
循环。例如,
while (条件) {
// 循环体
}