当前位置: 首页 > news >正文

掌握do-while循环:从语法到运用

目录

一、语法形式

二、执行流程与特点

do-while循环具有以下特点:

流程图表示:

三、典型应用场景

四、实例演示

实例1:打印1~10的值

实例2:计算整数位数

五、注意事项

六、练习题目

1、编写程序,使用do-while循环计算用户输入数字的各位数字之和

2、实现一个简单的菜单系统,使用do-while循环直到用户选择退出

3、输入一组数字,使用do-while循环统计正数和负数的个数(以0作为输入结束标志)

七、与其他循环的比较


一、语法形式

do-while循环是C语言中三种循环结构之一,其基本语法格式如下:

do {循环体语句;
} while (表达式);

二、执行流程与特点

do-while循环具有以下特点:

  1. 先执行后判断:与while和for循环不同,do-while会先执行循环体,然后再判断条件

  2. 至少执行一次:无论条件是否满足,循环体至少会执行一次

  3. 执行流程

    • 执行循环体语句

    • 计算while后的表达式

    • 若表达式结果为真(非0),则继续循环

    • 若表达式结果为假(0),则退出循环

流程图表示:


三、典型应用场景

do-while循环特别适合以下情况:

  • 需要至少执行一次的操作

  • 循环条件依赖于循环体内操作结果的情况

  • 用户交互场景(如菜单选择)


四、实例演示

实例1:打印1~10的值

#include <stdio.h>
int main()
{int i = 1;do {printf("%d ", i);i++;} while(i <= 10);return 0;
}

实例2:计算整数位数

#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);int cnt = 0;do {cnt++;n /= 10;} while (n != 0);printf("%d\n", cnt);return 0;
}

说明:这个例子特别适合使用do-while,因为:

  1. 任何整数至少有一位(包括0)

  2. 循环条件(n != 0)依赖于循环体内的操作(n /= 10)


五、注意事项

  1. while后面的分号不能省略

  2. 避免创建无限循环(确保循环条件最终会变为假)

  3. 可以使用break和continue控制流程(与while循环相同)


六、练习题目

1、编写程序,使用do-while循环计算用户输入数字的各位数字之和

#include <stdio.h>int main() {int num, sum = 0, digit;printf("请输入一个整数:");scanf("%d", &num);// 处理负数情况if (num < 0) {num = -num;}do {digit = num % 10;  // 获取最后一位数字sum += digit;      // 累加到总和num /= 10;         // 去掉最后一位} while (num > 0);printf("各位数字之和为:%d\n", sum);return 0;
}

说明

  1. 使用do-while确保至少执行一次(即使是0也能正确处理)

  2. 先处理负数情况,转换为正数计算

  3. 通过%10获取最后一位,/10去掉最后一位

2、实现一个简单的菜单系统,使用do-while循环直到用户选择退出

#include <stdio.h>int main() {int choice;do {printf("\n===== 菜单系统 =====\n");printf("1. 选项一\n");printf("2. 选项二\n");printf("3. 选项三\n");printf("0. 退出\n");printf("请选择:");scanf("%d", &choice);switch(choice) {case 1:printf("执行选项一操作\n");break;case 2:printf("执行选项二操作\n");break;case 3:printf("执行选项三操作\n");break;case 0:printf("感谢使用,再见!\n");break;default:printf("无效选项,请重新选择!\n");}} while (choice != 0);return 0;
}

说明

  1. 典型的do-while应用场景,确保至少显示一次菜单

  2. 使用switch-case处理不同选项

  3. 输入0时退出循环

3、输入一组数字,使用do-while循环统计正数和负数的个数(以0作为输入结束标志)

#include <stdio.h>int main() {int num, positive = 0, negative = 0;printf("请输入一组整数(输入0结束):\n");do {scanf("%d", &num);if (num > 0) {positive++;} else if (num < 0) {negative++;}} while (num != 0);printf("正数个数:%d\n", positive);printf("负数个数:%d\n", negative);return 0;
}

说明

  1. 使用do-while确保至少读取一次输入

  2. 0作为循环终止条件

  3. 分别统计正数和负数数量


七、与其他循环的比较

特性whilefordo-while
先判断后执行
至少执行一次
适合已知循环次数
适合未知循环次数

通过理解这些差异,可以选择最适合特定场景的循环结构。

http://www.dtcms.com/a/325714.html

相关文章:

  • IoT/实现和分析 NB-IoT+DTLS+PSK 接入华为云物联网平台IoTDA过程,总结避坑攻略
  • DeepCompare文件深度对比软件:权限管理与安全功能全面解析
  • Day12 Maven高级
  • openpnp - 顶部相机环形灯光DIY
  • 基于AI量化模型的比特币周期重构:传统四年规律是否被算法因子打破?
  • Apple Intelligence
  • 代币化股票的崛起:比特币安全吗?
  • Linux操作系统从入门到实战(十九)进程状态
  • SpringBoot 实现 Excel 导入导出功能的三种实现方式
  • SpringBoot 自动配置核心机制(面试高频考点)
  • 随身WiFi技术军备赛白热化:WiFi6架构下放中端市场,格行中兴华为三足鼎立;从芯片到场景的 10 款标杆产品深度解析
  • 使用Windbg分析多线程死锁项目实战问题分享
  • FPGA学习笔记——DS18B20(数字温度传感器)
  • 智慧工地:以三大监测技术筑牢安全屏障
  • 衡石科技HENGSHI SENSE 6.0 亮点功能一览-新增仪表盘入口和可视化
  • 【软件安装那些事 6】SOLIDWORKS 2021 详细安装教程(中文简体版)步骤完整不跳步 { 附软件提取下载链接,永久有效---------百度网盘 }
  • Python进阶(6):模块Modules
  • 游戏美术总监级工作流:Firefly AI赋能概念设计,从2D到3D重塑开发管线!
  • CVPR 2025 | 视觉感知新突破丨PF3Det、SemiDAViL与3D物体功能定位的创新点合集
  • MacroDroid 安卓版:功能强大的安卓自动化应用
  • Blender 数据集格式介绍
  • Mybatis学习之逆向工程(十)
  • 华为虚拟防火墙配置案例详解
  • 【软考中级网络工程师】知识点之 UDP 协议:网络通信中的高效轻骑兵
  • Open-Source Agentic Hybrid RAG Framework for Scientific Literature Review
  • Spark 优化全攻略:从 “卡成 PPT“ 到 “飞一般体验“
  • Hadoop和Spark的区别
  • vscode新建esp32工程,没有sample_project怎么办?
  • Mysql——Sql的执行过程
  • Windows Git Bash 常用配置