Java 基础 - 10. 循环语句 do-while
1. 引入
在 Java 中,循环语句是非常常见的控制结构,用于在满足特定条件的情况下重复执行某段代码。除了 for 循环和 while 循环外,还有一种特殊的循环结构——do-while 循环。它与 while 循环非常相似,但有一个重要的区别:do-while 循环至少会执行一次循环体,无论条件是否成立。
do-while 循环非常适合于那些需要至少执行一次循环体的情况。接下来,我们将详细介绍 do-while 循环的用法和特点。
2. 介绍
do-while 循环的基本结构如下:
语法:
do {
// 循环体
} while (条件);
- 循环体:在每次循环时执行的代码块。
- 条件:在每次循环结束时检查。如果条件为
true,则继续执行循环;如果条件为false,则退出循环。
与 while 循环不同的是,do-while 循环会先执行循环体,然后再判断条件是否成立。即使条件为 false,do-while 循环也会执行一次循环体。
3. 语法 + 案例
3.1 do-while 循环的基本示例
示例:打印 1 到 5 的数字
public class DoWhileExample {
public static void main(String[] args) {
int i = 1; // 初始化变量
do {
System.out.println(i); // 打印数字
i++; // 更新变量
} while (i <= 5); // 条件检查
}
}
运行结果:
1
2
3
4
5
在这个例子中:
- 我们先初始化了变量
i = 1。 - 循环体中的代码执行后,
i增加 1。 - 在每次循环结束时,
while会检查i <= 5是否为true,如果是,则继续执行循环,否则停止循环。
3.2 使用 do-while 循环执行多条语句
do-while 循环不仅可以执行一条语句,也可以执行多条语句,只需要使用大括号 {} 包裹起来。
示例:打印数字及其平方
public class DoWhileExample {
public static void main(String[] args) {
int i = 1;
do {
System.out.println("数字: " + i);
System.out.println("平方: " + (i * i));
i++;
} while (i <= 5);
}
}
运行结果:
数字: 1
平方: 1
数字: 2
平方: 4
数字: 3
平方: 9
数字: 4
平方: 16
数字: 5
平方: 25
3.3 do-while 循环和用户输入
do-while 循环非常适合用于需要至少执行一次循环体的情况,比如用户输入验证。
示例:输入一个数字并判断是否为正数
import java.util.Scanner;
public class DoWhileExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number;
do {
System.out.print("请输入一个正数:");
number = scanner.nextInt();
} while (number <= 0); // 如果输入的不是正数,继续要求输入
System.out.println("你输入的正数是:" + number);
}
}
示例运行结果:
请输入一个正数:-3
请输入一个正数:0
请输入一个正数:5
你输入的正数是:5
在这个例子中:
- 程序要求用户至少输入一次正数。
- 如果用户输入的数字不符合要求(小于等于零),循环会一直执行,直到用户输入一个正数。
4. 代码说明
-
初始化部分:在
do-while循环之前,我们初始化了变量i = 1,确保第一次进入循环体时,变量已经有了初始值。 -
循环体:
do后面的代码块就是我们要执行的内容。无论条件如何,do后的语句至少会执行一次。 -
条件部分:在循环体执行完后,
while会检查条件是否成立。如果条件为true,则继续执行循环;如果条件为false,则跳出循环。 -
注意:
do-while循环的条件判断是在循环体执行之后进行的。这意味着循环体至少执行一次,即使条件一开始就是false。
5. 练习题(含答案)
练习 1:打印 1 到 10 的数字
要求:编写程序,使用 do-while 循环打印从 1 到 10 的数字。
参考答案:
public class PrintNumbers {
public static void main(String[] args) {
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 10);
}
}
运行结果:
1
2
3
4
5
6
7
8
9
10
练习 2:计算 1 到 N 的和
要求:编写程序,计算从 1 到用户输入的数字 N 的和。
参考答案:
import java.util.Scanner;
public class SumUpToN {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数字 N:");
int N = scanner.nextInt();
int sum = 0;
int i = 1;
do {
sum += i;
i++;
} while (i <= N);
System.out.println("从 1 到 " + N + " 的和是: " + sum);
}
}
示例运行结果:
请输入一个数字 N:5
从 1 到 5 的和是: 15
练习 3:输出从 10 到 1 的倒序数字
要求:编写程序,使用 do-while 循环输出从 10 到 1 的数字。
参考答案:
public class ReverseNumbers {
public static void main(String[] args) {
int i = 10;
do {
System.out.println(i);
i--;
} while (i >= 1);
}
}
运行结果:
10
9
8
7
6
5
4
3
2
1
通过这篇文章,您了解了如何使用 do-while 循环来执行至少一次的任务。do-while 循环在某些场景下非常有用,特别是当我们希望确保循环体至少执行一次时。如果您掌握了 do-while 循环的基本用法,相信您能够更加灵活地应对不同的编程需求。
评论区