Appearance
7. if-else 分支:程序的十字路口
前置学习:关系与逻辑运算符
现实生活中,我们无时无刻不在做选择:“如果明天下雨,我就带伞;否则,我就戴遮阳帽。” 在 C++ 中,赋予程序这种“做选择”能力的,就是分支结构。最核心的指令就是 if(如果)和 else(否则)。
1. 单分支:if 语句
当你只需要在“满足某种条件”时才执行某件事,使用单分支。
cpp
int hp = 0;
// 如果小括号里的条件为真 (true),就执行大括号里的代码
if (hp <= 0) {
cout << "Game Over!" << endl;
}2. 双分支:if-else 语句
当面临“非此即彼”的选择时,使用 if-else。
cpp
int score;
cin >> score;
if (score >= 60) {
cout << "及格了,晚上加鸡腿!" << endl;
} else {
// 只要上面的条件不成立,就无条件执行这里
cout << "不及格,准备挨打!" << endl;
}3. 多重分支:else if
当情况超过两种,比如成绩分为优、良、及格、不及格时,可以通过连写 else if 来进行像下楼梯一样的逐级判断。
cpp
int score = 85;
if (score >= 90) {
cout << "优秀";
} else if (score >= 80) {
// 电脑能走到这里,说明暗含了一个条件:score 一定小于 90
cout << "良好";
} else if (score >= 60) {
cout << "及格";
} else {
// default 兜底:以上都不满足时执行
cout << "不及格";
}4. 💀 OI 赛场两大致命陷阱
陷阱一:少写一个等号的惨案 这是无数新手甚至老手都会栽跟头的地方:
cpp
int a = 5;
// 错误写法:if (a = 10)
if (a == 10) {
cout << "a等于10";
}如果你错写成了 if (a = 10),编译器不会报错!它的意思是把 10 塞进 a 里,并且这个操作本身的结果为 10(非 0 即真),所以大括号里的代码会被无条件执行。一定要牢记:判断相等是双等号 ==!
陷阱二:省略大括号的诱惑 C++ 语法允许 if 后面如果只有一行代码,可以不写 { }。 但竞赛铁律是:哪怕只有一行代码,也必须打上大括号! 这能帮你完全避开日后因为代码缩进混乱而导致的“悬挂 else”逻辑 Bug。
5. 动手实践
md
1. 打开左下角的代码沙盒。
2. 编写一个程序:输入一个整数 `n`。
3. 如果 `n` 是偶数,输出 `Even`;如果是奇数,输出 `Odd`。
*提示:判断偶数的方法是 `n % 2 == 0`*