新闻详情

新闻详情

首页 / 资讯中心 / 详情

C++ 第 9 课:break 和 continue

发布时间:2026/10/1 8:40:49来源:尧图网络
C++ 第 9 课:break 和 continue
上一课标准答案输出0 1 2 3输出1 2 3一共执行6 次i依次是0 1 2 3 4 5选B.while。因为我们不知道机械臂具体要循环多少次只知道“还没到目标就继续”。第 9 课break和continue这两个都是控制循环流程的。你可以先这样记break 直接结束整个循环 continue 只跳过当前这一轮继续下一轮这两个区别非常重要。1. 先看breakfor (int i 0; i 10; i) { if (i 3) { break; } std::cout i std::endl; }正常情况下i会从0 到 9但是当i 3成立时break;直接退出整个for循环。所以输出0 1 2不会输出3。因为程序执行到break;就立刻跳出循环了。2.break的流程可以理解成i 0 ↓ 输出 0 ↓ i 1 ↓ 输出 1 ↓ i 2 ↓ 输出 2 ↓ i 3 ↓ 满足 if ↓ break ↓ 整个循环结束3. 机械臂里什么时候会用break比如你在寻找第一个故障关节for (int i 0; i 6; i) { if (i 3) { std::cout Error found std::endl; break; } }可以理解成一旦发现故障就不用继续检查后面的关节了。这时候break很合理。4. 再看continuefor (int i 0; i 5; i) { if (i 2) { continue; } std::cout i std::endl; }这次不是结束整个循环。当i 2时continue;表示当前这一轮剩下的代码不执行直接进入下一轮。所以输出0 1 3 4注意2被跳过了。5.continue和break的区别看同一个场景。breakif (i 2) { break; }效果0 1 结束continueif (i 2) { continue; }效果0 1 跳过2 3 4 继续所以break 结束整个循环 continue 结束当前这一轮6. 机械臂数据筛选例子假设你有 6 个关节但其中第 3 个数据无效。我们可以for (int i 0; i 6; i) { if (i 2) { continue; } std::cout Process joint i std::endl; }输出Process joint 0 Process joint 1 Process joint 3 Process joint 4 Process joint 5也就是第 3 个关节这一轮跳过但其他关节继续处理。这就是continue很典型的用途。7.while里面也能用例如int count 0; while (true) { count; if (count 5) { break; } }当count 5时退出循环。所以break不只用于for也能用于while8. 一个机器人停止例子以后你可能写while (true) { bool emergency_stop false; if (emergency_stop true) { break; } // 控制机械臂 }意思是程序持续运行但如果触发急停就退出循环。当然真实机器人安全控制会更复杂但逻辑思想就是这样。9. 一个容易犯错的地方看for (int i 0; i 5; i) { if (i 2) { continue; } std::cout i std::endl; }当i 2时continue;会跳过std::cout i std::endl;所以不会输出2。你可以理解成continue ↓ 这一轮剩余代码全部跳过 ↓ 进入下一轮10.continue在while里要特别小心例如int i 0; while (i 5) { if (i 2) { continue; } i; }这个程序有问题。为什么当i 2时进入continue;然后直接回到while (i 5)但是i;被跳过了。所以i永远还是2于是2 5永远成立。形成死循环。11. 正确写法之一可以先让i增加int i 0; while (i 5) { i; if (i 2) { continue; } std::cout i std::endl; }这样就不会卡死。这说明一个非常重要的事情在while中使用continue时要特别注意“负责改变循环条件的变量”有没有被跳过。12. 今天最重要的判断以后看到break;你问是不是要彻底离开整个循环看到continue;你问是不是只想跳过当前这一轮小练习第 1 题for (int i 0; i 5; i) { if (i 3) { break; } std::cout i std::endl; }输出什么第 2 题for (int i 0; i 5; i) { if (i 3) { continue; } std::cout i std::endl; }输出什么第 3 题break和continue最大区别是什么第 4 题下面代码为什么可能死循环int i 0; while (i 5) { if (i 2) { continue; } i; }
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

荣耀远航计划激励更新:主题精品共创的规则拆解与创作策略 2026/10/1 19:52:30

荣耀远航计划激励更新:主题精品共创的规则拆解与创作策略

这两天,我身边不少做内容和设计的朋友都在聊同一个词——荣耀远航计划。准确地说,是它最新的那轮“主题精品共创激励更新”。说实话,第一眼看到这个标题时,我的反应是:又来了一个换汤不换药的激励活动?但仔…

阅读更多 →
工程监测RTU多协议通信实战:4G+Modbus+MQTT选型与配置 2026/10/1 19:52:29

工程监测RTU多协议通信实战:4G+Modbus+MQTT选型与配置

1. 工程监测场景下RTU的通信困局搞工程监测这行的朋友应该都有体会,现场环境远比实验室里复杂得多。一个典型的边坡监测项目,可能同时挂着振弦式渗压计、拉线式位移计、翻斗式雨量计、GNSS接收机,还有各种品牌的PLC控制柜。这些设备来自不同厂…

阅读更多 →
四路CAN转4G网关选型与实战:从原理到现场避坑指南 2026/10/1 19:52:21

四路CAN转4G网关选型与实战:从原理到现场避坑指南

1. 四路CAN转4G网关到底是个什么东西先把概念理清楚。四路CAN转4G网关,本质上是一台边缘侧的数据汇聚与转发设备:它身上有4路独立的CAN控制器(注意是控制器,不是简单的收发器并联),每一路都能挂一条独立的C…

阅读更多 →
基于微信小程序的大学生就业陪伴系统-附源码 2026/10/1 19:52:21

基于微信小程序的大学生就业陪伴系统-附源码

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

阅读更多 →
AI Agent 架构设计:破解“中年危机”——Lost in the Middle 的架构应对(OpenClaw、Claude Code、Hermes Agent 对比)与 TaoToken 统一 2026/10/1 19:52:20

AI Agent 架构设计:破解“中年危机”——Lost in the Middle 的架构应对(OpenClaw、Claude Code、Hermes Agent 对比)与 TaoToken 统一

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Claude Code 全流程开发终极指南:用 TaoToken 统一 Key 打通配置到交付 2026/10/1 19:52:13

Claude Code 全流程开发终极指南:用 TaoToken 统一 Key 打通配置到交付

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉