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

【C++】零基础入门 · 第 3 节:条件判断(if、switch)

程序的世界和现实一样充满了如果……就……的选择。比如如果余额足够就扣款如果密码正确就登录成功。这一节我们学习 C 中两个最常用的条件判断工具if和switch。1. if 语句最基础的条件判断1.1 基本语法if(条件){// 条件为 true 时执行的代码}举个例子判断一个人是否成年#includeiostreamusingnamespacestd;intmain(){intage20;if(age18){cout你已成年endl;}return0;}age 18是一个布尔表达式结果要么是true要么是false。当结果为true时花括号里的代码才会执行。1.2 if-else两种情况if(条件){// 条件为 true}else{// 条件为 false}改进上面的例子if(age18){cout你已成年endl;}else{cout你还未成年endl;}1.3 if-else if-else多种情况当需要判断多个条件时用else if串联起来#includeiostreamusingnamespacestd;intmain(){intscore;cout请输入成绩;cinscore;if(score90){cout优秀endl;}elseif(score80){cout良好endl;}elseif(score60){cout及格endl;}else{cout不及格endl;}return0;}注意判断顺序很重要——这里从高到低判断所以score 80的时候说明前面score 90已经不成立了成绩一定在 80 到 89 之间。1.4 条件表达式中常用的运算符等于注意不是是赋值!不等于大于、小于大于等于、小于等于逻辑与两个条件都满足||逻辑或至少一个条件满足!逻辑非取反例如判断一个年份是否为闰年if((year%40year%100!0)||(year%4000)){coutyear 是闰年endl;}2. switch 语句精确匹配的多分支当你需要根据一个变量的精确值来做不同处理时switch比一长串if-else if更清晰。2.1 基本语法switch(表达式){case值1:// 表达式等于值1时执行break;case值2:// 表达式等于值2时执行break;default:// 都不匹配时执行}2.2 实例根据数字输出星期#includeiostreamusingnamespacestd;intmain(){intday;cout请输入 1-7 的数字;cinday;switch(day){case1:cout星期一endl;break;case2:cout星期二endl;break;case3:cout星期三endl;break;case4:cout星期四endl;break;case5:cout星期五endl;break;case6:cout星期六endl;break;case7:cout星期日endl;break;default:cout输入无效endl;}return0;}2.3 break 不能忘每个case后面的break非常重要。如果不写break程序会穿透到下一个 case 继续执行这通常不是你想要的。看一个故意利用穿透的例子switch(month){case1:case3:case5:case7:case8:case10:case12:cout31 天endl;break;case4:case6:case9:case11:cout30 天endl;break;case2:cout28 或 29 天endl;break;default:cout无效月份endl;}这里故意让多个 case 共享同一段代码利用穿透来简化逻辑。但这种情况不多见日常使用记得加break。3. if 和 switch 怎么选简单原则比较范围大于、小于、区间→ 用if精确匹配等于某个具体值→ 用switchswitch只能用于整数类型int、char、enum不能用于浮点数或字符串实际开发中if用得更多switch在处理枚举状态、菜单选项等场景下比较方便。4. 嵌套条件判断条件判断可以嵌套但不建议超过三层否则代码会变得难以阅读。如果发现嵌套太深可以考虑用函数拆分逻辑或者用提前return来减少嵌套层级。5. 小结这一节我们学了两种条件判断方式if适合范围判断和复杂条件组合switch适合精确值匹配。重点掌握if-else if-else的多分支写法和switch的break用法。下一节我们将学习循环结构让程序能够重复执行某些操作。
http://www.rkmt.cn/news/1382936.html

相关文章:

  • 借助Taotoken多模型能力为产品设计动态的AI功能模块
  • Hermes Agent工具连接Taotoken多模型服务的配置指引
  • 基于Atmega32U4的可穿戴LED控制器设计:从电源管理到PCB布局
  • UE:如何让 AI 直接修改 DataAsset
  • 保姆级教程:在Ubuntu 22.04上搞定NVIDIA驱动、Anaconda和CUDA 12.4(含常见报错解决)
  • 3步快速上手:TigerVNC实现跨平台远程桌面控制的完整指南
  • 稳交付才是硬实力,超元力大型球幕飞行影院标准化落地体系
  • 微软内部报告算了一笔账:AI比雇人还贵,你的岗位可能没你想的那么危险
  • Weather Maker深度解析:体积云与动态天气的物理建模实践
  • 基于ESP32的无线调试追踪方案:串口日志实时网页显示
  • 5.24周报
  • GEO生成引擎优化2026技术全景:从底层原理到落地框架,这篇讲透了
  • 【Veo 2提示词工程权威指南】:20年AIGC实战提炼的7条不可绕过的黄金法则
  • Product Hunt 每日热榜 | 2026-05-24
  • FinceptTerminal 深度拆解:23k Star 的开源金融终端,到底做对了什么?
  • DIY儿童电子琴:从RC振荡器到免开关设计的极简电路实践
  • 电子签如何打通企业数字化“最后一公里”?
  • DeepSeek协议识别技术白皮书(含17个真实GitHub仓库扫描对比数据,仅限本周开放下载)
  • 《自在独行》
  • 空间扭曲、线条跑偏?聊聊 Seedance 2.0 在建筑漫游与科幻场景中的调教
  • 别只让角色动!用Scratch画笔模块,5分钟教你做出酷炫的交互式艺术画板
  • 从零开始的web前端开发10
  • HiveWE终极指南:魔兽争霸III现代地图编辑器完全教程
  • 在Node.js服务中集成Taotoken实现稳定高效的大模型API调用
  • Unity资源逆向实战:AssetStudio底层原理与五大卡点排障
  • 对象初始化过程深度解析
  • 利用Taotoken实现AI应用的高可用与故障路由策略
  • M1 Mac 装 Ollama,我被 Docker 骗了三次
  • 系统单一时区场景下的时间类型传输设计方案(固定时区:东八区)
  • Vue2-Verify:5种验证码类型,轻松为Vue项目添加安全验证