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

2.1 C++之条件语句

学习目标

  • 理解程序的分支逻辑(根据不同条件执行不同代码)。
  • 掌握 if-elseswitch 语句的用法。
  • 能编写简单的条件判断程序(如成绩评级、游戏选项等)。

在这里插入图片描述

1 条件语句的基本概念

什么是条件语句?

  • 程序在执行时,有时需要根据不同的情况做出不同的操作。
  • 条件语句就是让计算机“做选择”的代码结构。

核心结构

if (条件) {// 条件成立时执行的代码
} else {// 条件不成立时执行的代码
}

类比生活

  • 就像“如果今天下雨,就带伞;否则,就不带伞”。

2 if-else 语句

基本语法
if (条件) {// 条件成立时执行
} else {// 条件不成立时执行
}

示例1:判断成绩是否及格

int score = 75;
if (score >= 60) {cout << "及格!";
} else {cout << "不及格!";
}

运行结果

及格!
多条件判断(else if)
if (条件1) {// 条件1成立时执行
} else if (条件2) {// 条件2成立时执行
} else {// 其他情况执行
}

示例2:成绩等级转换(A/B/C/D/E)

int score = 85;
if (score >= 90) {cout << "A";
} else if (score >= 80) {cout << "B";
} else if (score >= 70) {cout << "C";
} else if (score >= 60) {cout << "D";
} else {cout << "E";
}

运行结果

B
嵌套 if 语句
  • ifelse 里再写 if 语句。
    示例3:判断三角形类型
int a = 3, b = 4, c = 5;
if (a + b > c && a + c > b && b + c > a) {if (a == b && b == c) {cout << "等边三角形";} else if (a == b || b == c || a == c) {cout << "等腰三角形";} else {cout << "普通三角形";}
} else {cout << "不能构成三角形";
}

运行结果

普通三角形

3 switch 语句

基本语法
  • 适用于多个固定选项的判断(如菜单选择、星期几等)。
switch (变量) {case1:// 代码1break;case2:// 代码2break;default:// 默认情况
}

示例4:模拟计算器菜单

cout << "1.加法\n2.减法\n3.退出\n请选择:";
int choice;
cin >> choice;switch (choice) {case 1:cout << "执行加法";break;case 2:cout << "执行减法";break;case 3:cout << "退出程序";break;default:cout << "输入错误!";
}

运行示例

1.加法  
2.减法  
3.退出  
请选择:2  
执行减法  
switch 与 if 的区别
特点if-elseswitch
适用场景范围判断(如 score > 60固定值匹配(如 case 1:
可读性适合复杂条件适合多个选项
效率逐条判断直接跳转(更快)

4 常见错误 & 调试技巧

易错点
  1. **忘记写 ==,误用 **=
    • if (x = 5) ❌(赋值,永远为真)
    • if (x == 5) ✅(比较)
  2. switch** 漏写 **break
    • 会导致“穿透”执行多个 case
  3. 逻辑运算符错误
    • if (a < b < c) ❌(错误写法)
    • if (a < b && b < c) ✅(正确写法)
调试技巧
  • 使用 cout 打印变量的值,检查条件是否按预期执行。
  • 用注释 // 暂时屏蔽部分代码,逐步排查问题。

5 练习与挑战

基础练习

  1. 编写程序,判断一个数是奇数还是偶数。
  2. 输入月份(1-12),输出对应的季节(春/夏/秋/冬)。

进阶挑战

  1. 实现一个“BMI 计算器”,根据身高体重判断胖瘦等级。
  2. 设计一个“简易ATM机”,用 switch 实现存款、取款、查询功能。

总结

知识点关键内容
if-else用于条件分支,支持多级判断(else if)。
switch适用于固定选项匹配,比 if 更清晰。
常见错误= vs ==break 遗漏、逻辑错误。
应用场景游戏选项、成绩评级、菜单交互等。

http://www.lryc.cn/news/2386882.html

相关文章:

  • ZYNQ实战:可编程差分晶振Si570的配置与动态频率切换
  • Linux `ls` 命令深度解析与高阶应用指南
  • 【MPC控制 - 从ACC到自动驾驶】5. 融会贯通:MPC在ACC中的优势总结与知识体系构建
  • Day3 记忆内容:map set 高频操作
  • 初等数论--Garner‘s 算法
  • NV211NV212美光科技颗粒NV219NV220
  • SQL解析工具JSQLParser
  • Wave Terminal + Cpolar:SSH远程访问的跨平台实战+内网穿透配置全解析
  • html使用JS实现账号密码登录的简单案例
  • sorted() 函数和sort()函数的区别
  • Solr搜索:比传统数据库强在哪?
  • 【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)
  • 51c自动驾驶~合集55
  • 【前端基础】Promise 详解
  • 高性能管线式HTTP请求
  • c/c++的opencv膨胀
  • react native搭建项目
  • 【CSS】九宫格布局
  • Python用Transformer、Prophet、RNN、LSTM、SARIMAX时间序列预测分析用电量、销售、交通事故数据
  • java基础(面向对象进阶高级)泛型(API一)
  • 学习心得(17--18)Flask表单
  • AI测试和敏捷测试有什么联系与区别?
  • 微信小程序进阶第2篇__事件类型_冒泡_非冒泡
  • 电机控制学习笔记
  • 什么是前端工程化?它有什么意义
  • 企业网站架构部署与优化-Nginx性能调优与深度监控
  • 行列式的线性性质(仅限于单一行的加法拆分)
  • JAVA基础编程练习题--50道
  • leetcode 93. Restore IP Addresses
  • 【东枫科技】基于Docker,Nodejs,GitSite构建一个KB站点