学习目标:
- 理解程序的分支逻辑(根据不同条件执行不同代码)。
- 掌握
if-else
和switch
语句的用法。 - 能编写简单的条件判断程序(如成绩评级、游戏选项等)。
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 语句
- 在
if
或else
里再写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 (变量) {
case 值1:
// 代码1
break;
case 值2:
// 代码2
break;
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-else | switch |
---|---|---|
适用场景 | 范围判断(如 score > 60 ) | 固定值匹配(如 case 1: ) |
可读性 | 适合复杂条件 | 适合多个选项 |
效率 | 逐条判断 | 直接跳转(更快) |
4 常见错误 & 调试技巧
易错点
- **忘记写
==
,误用 **=
if (x = 5)
❌(赋值,永远为真)if (x == 5)
✅(比较)
switch
** 漏写 **break
- 会导致“穿透”执行多个
case
。
- 会导致“穿透”执行多个
- 逻辑运算符错误
if (a < b < c)
❌(错误写法)if (a < b && b < c)
✅(正确写法)
调试技巧
- 使用
cout
打印变量的值,检查条件是否按预期执行。 - 用注释
//
暂时屏蔽部分代码,逐步排查问题。
5 练习与挑战
基础练习
- 编写程序,判断一个数是奇数还是偶数。
- 输入月份(1-12),输出对应的季节(春/夏/秋/冬)。
进阶挑战
- 实现一个“BMI 计算器”,根据身高体重判断胖瘦等级。
- 设计一个“简易ATM机”,用
switch
实现存款、取款、查询功能。
总结
知识点 | 关键内容 |
---|---|
if-else | 用于条件分支,支持多级判断(else if )。 |
switch | 适用于固定选项匹配,比 if 更清晰。 |
常见错误 | = vs == 、break 遗漏、逻辑错误。 |
应用场景 | 游戏选项、成绩评级、菜单交互等。 |