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

【C++】零基础入门 · 第 4 节:循环结构(while、for、do-while)

上一节我们学习了条件判断这一节来学习循环结构。循环让程序能够重复执行某段代码直到满足特定条件为止。C 提供了三种循环语句while、for和do-while。1. while 循环先判断后执行while循环在每次执行前先检查条件如果条件为true就执行循环体否则退出循环。1.1 基本语法while(条件){// 循环体条件为 true 时重复执行}1.2 实例打印 1 到 5#includeiostreamusingnamespacestd;intmain(){inti1;while(i5){couti ;i;}coutendl;return0;}输出结果1 2 3 4 5这里i是i i 1的简写每次循环让i增加 1。如果没有这行i永远是 1条件i 5永远成立就会变成死循环。1.3 实例计算 1 到 100 的和#includeiostreamusingnamespacestd;intmain(){intsum0;inti1;while(i100){sumi;// 等价于 sum sum ii;}cout1 到 100 的和为sumendl;return0;}输出结果1 到 100 的和为50502. for 循环计数循环的首选for循环把初始化、条件判断、更新三个部分写在一行结构更紧凑特别适合已知循环次数的场景。2.1 基本语法for(初始化;条件;更新){// 循环体}执行顺序初始化 → 判断条件 → 执行循环体 → 更新 → 判断条件 → ……2.2 实例打印 1 到 5#includeiostreamusingnamespacestd;intmain(){for(inti1;i5;i){couti ;}coutendl;return0;}这段代码和上面while的例子效果完全一样但写法更简洁。for循环把变量初始化、循环条件、变量更新都集中在一行逻辑一目了然。2.3 实例计算阶乘计算 5 的阶乘5! 5 × 4 × 3 × 2 × 1#includeiostreamusingnamespacestd;intmain(){intn5;intfactorial1;for(inti1;in;i){factorial*i;// 等价于 factorial factorial * i}coutn! factorialendl;return0;}输出结果5! 1202.4 for 循环的变体for循环的三个部分都可以省略但分号不能省// 省略初始化在循环外初始化inti0;for(;i5;i){...}// 省略更新在循环体内更新for(inti0;i5;){coutiendl;i;}// 无限循环不推荐除非配合 break 使用for(;;){// 无限循环}3. do-while 循环先执行后判断do-while循环先执行一次循环体再判断条件。也就是说无论条件是否成立循环体至少会执行一次。3.1 基本语法do{// 循环体至少执行一次}while(条件);// 注意这里有分号3.2 实例简单的猜数字游戏#includeiostream#includecstdlib#includectimeusingnamespacestd;intmain(){srand(time(0));// 用当前时间作为随机数种子inttargetrand()%1001;// 生成 1-100 的随机数intguess;do{cout猜一个 1-100 的数字;cinguess;if(guesstarget){cout大了endl;}elseif(guesstarget){cout小了endl;}}while(guess!target);cout恭喜你猜对了endl;return0;}这个例子中玩家至少要猜一次才能知道结果所以用do-while比while更合适。4. 循环控制break 和 continue4.1 break立即跳出循环#includeiostreamusingnamespacestd;intmain(){for(inti1;i10;i){if(i6){break;// 当 i 等于 6 时跳出循环}couti ;}coutendl;return0;}输出结果1 2 3 4 54.2 continue跳过本次循环#includeiostreamusingnamespacestd;intmain(){for(inti1;i10;i){if(i%20){continue;// 跳过偶数}couti ;}coutendl;return0;}输出结果1 3 5 7 95. 嵌套循环循环可以嵌套使用外层循环每执行一次内层循环就完整执行一遍。5.1 实例打印九九乘法表#includeiostreamusingnamespacestd;intmain(){for(inti1;i9;i){for(intj1;ji;j){coutj × i i*j\t;}coutendl;}return0;}这段代码会输出完整的九九乘法表。\t是制表符用来对齐输出。6. 三种循环怎么选简单原则已知循环次数 → 用for不知道循环次数但知道结束条件 → 用while循环体至少执行一次 → 用do-while实际开发中for用得最多while次之do-while较少使用。7. 常见错误7.1 死循环忘记更新循环变量会导致死循环// 错误i 永远是 1inti1;while(i5){coutiendl;// 忘记 i}7.2 循环变量作用域在for循环初始化中声明的变量只在循环内部有效for(inti0;i5;i){// i 在这里有效}// cout i; // 错误i 未定义8. 小结这一节我们学习了三种循环结构while适合条件循环for适合计数循环do-while适合至少执行一次的场景。重点掌握for循环的写法和break、continue的用法。下一节我们将学习函数让代码更加模块化。
http://www.zskr.cn/news/1381459.html

相关文章:

  • 利用 Taotoken 多模型能力为智能客服场景提供备份路由
  • 别只做Demo了!用Construct 3把你的游戏想法打包成APK,发布到TapTap试试
  • Arduino土壤湿度监测仪制作:从传感器原理到自动灌溉实现
  • 2026广州番禺注册公司避坑指南|实测5家靠谱财税公司,创业新手直接抄作业 - 资讯纵览
  • 抖音批量下载神器:3分钟搞定用户主页全作品,去水印免费下载
  • Linux 负载均衡的 nr_balance_failed:均衡失败的退避机制
  • ComfyUI-SUPIR终极指南:专业级AI图像超分辨率完整配置方案
  • Godot 4.2 + C# 避坑指南:手把手教你打包发布你的第一个2D游戏到Steam
  • 【长效留存·复习必备】学术英语阅读的“破局六法”:避开思维误区与核心词汇全盘复盘
  • 从游戏玩家到开发者:用你的游戏电脑(GTX1060+)快速搭建Unity学习环境
  • Battery Toolkit:Apple Silicon Mac 电池健康管理的专业工具
  • 别再只盯着光耦了!聊聊数字隔离器(如TI ISO系列)在工业PLC设计中的选型与实战避坑
  • 国内超高分子量聚乙烯板生产企业实力排行盘点 - 奔跑123
  • 二分查找:一种经典的 O(log n) 高效搜索算法
  • 告别模糊!用MapCutter 3.13.0处理超大航拍图,实现高清WebGL/Leaflet地图的保姆级教程
  • 告别Legacy Text!用DoTween在Unity 2022+中为TextMeshPro实现丝滑打字效果
  • 告别Legacy Text!手把手教你用DoTween为Unity的TextMeshPro实现打字机效果(附完整代码)
  • Unity项目实战:用TriLib插件动态加载FBX模型,5分钟搞定外部资源读取
  • 避坑指南:Unity动态加载模型时,TriLib插件材质丢失、缩放异常的5个常见问题解决
  • 告别玄学安装:用国内镜像源和脚本一键搞定 ROS Noetic (Ubuntu 20.04)
  • Unity 2019.4 集成MAX聚合广告SDK避坑全记录:从AppLovin配置到Google Admob广告单元关联
  • Unity 2019.4 集成MAX聚合广告SDK避坑全记录:从Gradle版本冲突到测试设备激活
  • 避开Pygame图像旋转缩放的坑:性能优化与‘黑边’问题全解决(附代码)
  • 终极指南:如何使用DyberPet桌面宠物框架构建个性化虚拟伙伴
  • 《给大厂P7/P8的一封“劝退信”:与其在大厂等AI收割,不如来这里留份“家产”》
  • 别再让角色撞墙了!Unity新手必学的NavMesh烘焙与Agent设置保姆级教程
  • 关键词矩阵系统:当搜索流量成为企业增长的“第二曲线“
  • 告别基础移动!用Unity XR Interaction Toolkit为PICO 4实现更酷的手柄交互(附传送、抓取代码)
  • UE材质进阶:拆解WorldAlignedTexture节点,从原理到实战实现动态环境贴图
  • 为ClaudeCode配置Taotoken聚合接口解决密钥不稳定与额度不足问题