【C语言极简自学笔记】深入理解 C 语言 do-while 循环:语法、用法与实战解析

在 C 语言的循环结构中,do-while循环以其 "先执行后判断" 的特性独树一帜。它确保循环体至少执行一次,这在处理用户输入验证、菜单交互等场景中具有不可替代的优势。本文将从语法规则、执行流程、实战案例等多个维度深入解析do-while循环,帮助掌握其核心用法。

一、do-while 循环的语法与执行流程

1.1 基本语法结构

do 
{
    // 循环体语句
} 
while (条件表达式); // 注意末尾的分号不可省略

1.2 执行流程解析

  1. 第一步:先执行一次循环体中的语句
  2. 第二步:计算while后的条件表达式
  3. 第三步:若条件为真(非 0 值),则返回第一步继续执行;若为假(0 值),则终止循环

关键特性:无论条件是否成立,循环体至少执行一次。这是do-whilewhile循环的本质区别。 

二、实战案例解析

案例 1:计算 1 到 10 的累加和(至少执行一次的循环)

int main() 
{
    int i = 1;
    int sum = 0;
    do {
        sum += i; // 累加操作
        i++;      // 迭代变量更新
    } 
    while (i <= 10); // 当i>10时终止循环
    
    printf("1到10的和为:%d\n", sum); // 输出结果:55
    return 0;
}

执行过程

  • 首次执行循环体,sum=1i=2
  • 检查条件2<=10成立,继续循环
  • 直到i=11时条件不成立,循环终止,输出结果。

案例 2:用户输入验证(确保至少一次输入)

int main() 
{
    int num = 0;
    do 
    {
        printf("请输入1-100之间的整数:");
        scanf("%d", &num);
    } 
    while (num < 1 || num > 100); // 输入不合法时继续循环
    
    printf("输入的合法数字为:%d\n", num);
    return 0;
}

应用场景

  • 当需要强制用户进行至少一次输入,并对输入进行校验时
  • 相比while循环,无需额外处理第一次输入的特殊情况

三、do while循环中的breakcontinue 

1.break

break语句用于立即终止当前所在的循环,跳出循环体,程序将继续执行循环之后的语句。在do-while循环里,无论while后面的条件是否为真,只要执行到break语句,循环就会马上结束。

int main()
{
        int i = 1;
        do
        {
            if (5 == i)
                break;
            printf("%d ", i);
            i++;
        } 
        while (i < 10);
        return 0;
    
}

当循环执行至i=5时,进入if语句,遇到break跳出循环。

2.continue

continue语句的作用是跳过当前循环体中剩余的语句,直接进入下一次循环的条件判断。在do-while循环中,当执行到continue语句时,程序会忽略continue后面的语句,直接跳转到while语句处进行条件判断,如果条件为真,则继续执行下一次循环。

  int i = 1;
  do
  {
      
      if (5 == i)
          continue;
      printf("%d ", i);
      i++;
  } 

 由于当i=5时,进入if语句之后遇到continue会跳过后续程序,i值不更新,因此一直处于死循环之中。若将i++改到if语句前,其结果如下:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值