do...while 语句的核心知识点
(一)语法结构:
do { // 循环体(至少执行一次)
} while (条件表达式); // 条件为真则继续循环
(二)核心特点:
- 先执行,后判断:循环体至少执行一次,即使条件一开始就不满足。
- 条件表达式:必须是布尔值(C 语言中 0 为假,非 0 为真)。
- 循环终止:当条件表达式为假时,循环结束。
(三)适用场景:
- 需要确保循环体至少执行一次的情况(如用户输入验证、菜单交互)。
- 简单的计数循环、累加 / 累乘计算。
- 避免
while循环中初始条件不满足导致循环不执行的问题。
(四)示例代码:
1.代码如下:
#include <stdio.h>
int main() {
// 示例 1:基本用法(至少执行一次)
int count = 0;
printf("示例 1:基本 do...while 循环\n");
do {
printf("计数:%d\n", count);
count++;
} while (count < 5);
printf("\n");
// 示例 2:用户输入验证(确保输入有效)
int age;
printf("示例 2:用户输入验证\n");
do {
printf("请输入你的年龄(1-120):");
scanf("%d", &age);
if (age < 1 || age > 120) {
printf("年龄输入无效,请重新输入!\
");
}
} while (age < 1 || age > 120); // 条件不满足则继续循环
printf("你输入的年龄是:%d\n\n", age);
// 示例 3:计算 1~n 的累加和
int n, sum = 0, i = 1;
printf("示例 3:计算 1~n 的累加和\n");
printf("请输入一个正整数 n:");
scanf("%d", &n);
do {
sum += i; // 累加
i++;
} while (i <= n);
printf("1~%d 的累加和为:%d\n\n", n, sum);
// 示例 4:用 do...while 实现简单的菜单交互
char choice;
printf("示例 4:简单菜单交互\n");
do {
printf("===== 菜单 =====\
");
printf("1. 显示欢迎信息\
");
printf("2. 显示当前时间\
");
printf("0. 退出程序\
");
printf("请选择(0-2):");
scanf(" %c", &choice); // 注意前面的空格,跳过换行符
switch (choice) {
case '1':
printf("欢迎使用本程序!\
");
break;
case '2':
printf("当前时间:2024-05-20 10:00:00\
"); // 模拟时间
break;
case '0':
printf("程序即将退出...\
");
break;
default:
printf("无效选择,请重新输入!\
");
}
printf("\
");
} while (choice != '0'); // 选择 0 则退出循环
return 0;
}
2.运行结果如下:
(五)总结:
do...while循环的核心是先执行后判断,确保循环体至少运行一次。- 适合用户输入验证、菜单交互等必须执行一次的场景。
- 注意循环条件的更新,避免死循环。