do......while语句的核心知识点

97 阅读2分钟

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.运行结果如下:

image.png

(五)总结:

  • do...while 循环的核心是先执行后判断,确保循环体至少运行一次。
  • 适合用户输入验证、菜单交互等必须执行一次的场景。
  • 注意循环条件的更新,避免死循环。