精通 Java while & do-while 循环:分步教程
Java while 和 do...while 循环
本教程通过示例讲解如何在 Java 中使用 while 和 do while 循环。
计算机编程中,循环用于重复执行代码块。例如,想显示消息 100 次,可用循环。这只是简单示例;循环能实现更多功能。
上一教程学习了 Java for 循环。本文将学习 while 和 do...while 循环。
Java while 循环
Java while 循环用于运行特定代码直到满足某条件。语法:
while (testExpression) {
// 循环体
}
此处,
while循环评估括号内的 testExpression。- 若 testExpression 为
true,执行循环体代码。 - 再次评估 testExpression。
- 此过程持续直到 testExpression 为
false。 - 当 testExpression 为
false,循环停止。
了解更多条件请访问 Java 关系和逻辑运算符。
while 循环流程图

示例 1: 显示 1 到 5 的数字
// 显示 1 到 5 的数字
class Main {
public static void main(String[] args) {
// 声明变量
int i = 1, n = 5;
// while 循环 1 到 5
while(i <= n) {
System.out.println(i);
i++;
}
}
}
输出
1 2 3 4 5
程序工作原理:
| 迭代 | 变量 | 条件: i <= n | 动作 |
|---|---|---|---|
| 1st | i = 1n = 5 | true | 1 打印。 i 增至 2。 |
| 2nd | i = 2n = 5 | true | 2 打印。 i 增至 3。 |
| 3rd | i = 3n = 5 | true | 3 打印。 i 增至 4。 |
| 4th | i = 4n = 5 | true | 4 打印。 i 增至 5。 |
| 5th | i = 5n = 5 | true | 5 打印。 i 增至 6。 |
| 6th | i = 6n = 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 = " + sum);
input.close();
}
}
输出
输入一个数字 25 输入一个数字 9 输入一个数字 5 输入一个数字 -3 Sum = 39
上程序使用 Scanner 类获取用户输入。nextInt() 读取整数输入。
while 循环持续直到用户输入负数。每次迭代将用户输入的数字加到 sum 变量。
用户输入负数时循环终止。最后显示总和。
Java do...while 循环
do...while 循环类似 while 循环。但 do...while 循环体在检查测试表达式前先执行一次。例如:
do {
// 循环体
} while(textExpression);
此处,
- 先执行循环体,然后评估 textExpression。
- 若 textExpression 为
true,再次执行do语句中的循环体。 - 再次评估 textExpression。
- 若 textExpression 为
true,再次执行循环体。 - 此过程持续直到 textExpression 为
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;
// do...while 循环 1 到 5
do {
System.out.println(i);
i++;
} while(i <= n);
}
}
输出
1 2 3 4 5
程序工作原理:
| 迭代 | 变量 | 条件: i <= n | 动作 |
|---|---|---|---|
i = 1n = 5 | 未检查 | 1 打印。 i 增至 2。 | |
| 1st | i = 2n = 5 | true | 2 打印。 i 增至 3。 |
| 2nd | i = 3n = 5 | true | 3 打印。 i 增至 4。 |
| 3rd | i = 4n = 5 | true | 4 打印。 i 增至 5。 |
| 4th | i = 5n = 5 | true | 6 打印。 i 增至 6。 |
| 5th | i = 6n = 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 = " + sum);
input.close();
}
}
输出 1
输入一个数字 25 输入一个数字 9 输入一个数字 5 输入一个数字 -3 Sum = 39
用户输入正数,该数加到 sum。此过程持续直到输入负数。输入负数时循环终止,显示总和 (不加负数)。
输出 2
输入一个数字 -8 Sum is 0
用户输入负数。测试条件为 false 但循环体仍执行一次。
无限 while 循环
若循环 条件 恒为 true,循环无限运行 (直到内存耗尽)。例如:
// 无限 while 循环
while(true){
// 循环体
}
无限 do...while 循环示例:
// 无限 do...while 循环
int count = 1;
do {
// 循环体
} while(count == 1)
上述程序中 textExpression 恒为 true,故循环体无限执行。
for 与 while 循环对比
for 循环用于迭代次数已知的场景。例如:
for (let i = 1; i <=5; ++i) {
// 循环体
}
while 和 do...while 循环通常用于迭代次数未知的场景。例如:
while (condition) {
// 循环体
}
java
- while 与 do-while 循环深度对比:原理、语法与实战案例全解析
- Java 变量与字面量:全面指南
- 理解 Java 表达式、语句与代码块
- 精通 Java 增强 for 循环:语法、示例与最佳实践
- Java 类与对象:实用指南
- Java 抽象类与抽象方法完全指南
- 精通 Java 嵌套类与内部类:类型、示例与最佳实践
- Java throw 与 throws 深度解析:异常处理实战指南
- 掌握 Java 自动装箱与拆箱:实战示例与最佳实践
- Java 回文数判断:while 循环与 for 循环两种算法实现
- 精通 Java:理解对象、类与核心 OOP 概念
- 掌握 Java 日期时间:构造器、方法与最佳实践