C++ if-else 语句
中等14二选一的魔法:C++ if-else 语句
生活中,我们经常要面对“如果……就……否则……”的选择。比如:如果明天有雨,我就带伞;否则我就戴帽子。 在C++程序里,我们也想让电脑像人一样根据条件做出不同的反应。这时候就要用到 if-else 语句,它让程序在条件成立时做一件事,条件不成立时做另一件事——就像有两个备选方案,程序只执行其中一组。
1. if-else 语句长什么样?
它的基本格式就像一副天平:
if (条件) {
// 条件成立(为真)时,执行的代码块
} else {
// 条件不成立(为假)时,执行的代码块
}
条件是一个判断式,通常用关系运算符(比如>、<、==、!=)或者逻辑运算符(&&、||、!)组成,结果要么是“真”(true),要么是“假”(false)。- 如果条件为真,程序会跳过 else 部分,只执行 if 后面花括号里的内容。
- 如果条件为假,程序会跳过 if 的花括号,只执行 else 后面的花括号。
- 两边的花括号可以只写一条语句,但建议总是加上花括号,这样代码更清晰,也不容易出错。
小窍门:可以把花括号看作“小房间”,每个房间只放一类任务。程序根据判断结果决定走进哪个房间。
2. 一个最常用的例子:判断奇偶
原来的例子已经很棒啦,我们给它加上清晰的中文注释,再深入看看:
#include <iostream>
using namespace std;
int main() {
int num; // 定义整数变量 num,用来存用户输入的数字
cout << "请输入一个整数:";
cin >> num; // 从键盘读取用户输入的数
if (num % 2 == 0) { // 条件:num 除以 2 的余数等于 0 吗?
cout << num << " 是偶数" << endl; // 是偶数
} else {
cout << num << " 是奇数" << endl; // 否则就是奇数
}
return 0;
}
运行这段代码:
- 输入
7→ 输出7 是奇数 - 输入
8→ 输出8 是偶数
为什么 %2 能判断奇偶?
% 是取余运算符,比如 7 % 2 结果是 1(因为 7 ÷ 2 = 3 余 1),8 % 2 结果是 0。余数为 0 说明能被 2 整除,就是偶数。
3. 更多贴近生活的例子
例子1:考试分数是否及格
假设你考了数学,满分100分,60分及以上算及格。程序可以这样判断:
int score; // 定义分数变量
cout << "请输入你的数学成绩:";
cin >> score;
if (score >= 60) {
cout << "恭喜你,及格了!继续加油!" << endl;
} else {
cout << "不及格,下次要更努力哦!" << endl;
}
例子2:零花钱够不够买零食
你每周有20元零花钱,想买一包8元的薯片。如果剩余的钱足够,就买;否则就攒着。
int pocket_money = 20; // 当前零花钱 20 元
int chip_price = 8; // 薯片价格 8 元
if (pocket_money >= chip_price) {
cout << "买一包薯片!" << endl;
pocket_money = pocket_money - chip_price; // 剩余的钱更新
} else {
cout << "钱不够,再攒攒吧。" << endl;
}
例子3:排队是否轮到你
操场上大家按1、2、3……编号排队,你排在3号。当叫到你的号码时就可以上场。
int my_number = 3; // 你的排队编号
int called_number; // 当前叫到的号码
cout << "请输入当前叫到的号码:";
cin >> called_number;
if (called_number == my_number) {
cout << "轮到你了!快上场!" << endl;
} else {
cout << "还没轮到你,耐心等待。" << endl;
}
4. 新手最容易犯的4个错误
-
❌ 把赋值
=当成判断相等==
比如写成if (score = 60),这会把 60 赋值给 score,然后整个表达式结果就是 60(非0为真),条件永远成立!正确写法是score == 60。 -
❌ 忘记花括号导致逻辑错误
如果 if 或 else 后面只有一条语句,可以省略花括号,但新手容易忘记缩进和逻辑对应。比如:if (score >= 60) cout << "及格" << endl; else cout << "不及格" << endl; cout << "下次加油" << endl; // 这行不属于else,会永远执行!正确的做法:哪怕只有一条语句,也加上花括号,养成好习惯。
-
❌ 条件写反了
比如“如果下雨带伞,否则戴帽子”,条件写成了if (不下雨),然后 else 里带伞……检查条件是否符合日常逻辑。 -
❌ 忘了加分号
在 if 条件后面加;是个大坑:if (score >= 60);语法上没问题,但分号结束了整个if语句,后面的花括号就成了普通代码块,永远执行。
5. 完整的课堂示例:判断年份是平年还是闰年?
闰年的规则:能被4整除但不能被100整除,或者能被400整除。用 if-else 可以简洁判断。
#include <iostream>
using namespace std;
int main() {
int year; // 定义年份变量
cout << "请输入一个年份(如2024):";
cin >> year;
// 判断闰年条件
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
cout << year << " 年是闰年,有366天。" << endl;
} else {
cout << year << " 年是平年,有365天。" << endl;
}
return 0;
}
输入 2024,输出 2024 年是闰年,有366天。
输入 2023,输出 2023 年是平年,有365天。
6. 学完if-else,接下来可以学什么?
- if-else if-else 多分支:当有多个条件需要依次判断时,比如根据分数评等级(90分以上优秀,80-89良好……)。
- 嵌套的if-else:在一个 if 或 else 的代码块里再写 if-else,用于更复杂的组合判断。
- switch语句:针对单个变量的多个固定值(比如星期几)做选择,有时比 if-else 更清晰。
记住,if-else 是 C++ 中最基础、最常用的分支结构。掌握好它,写出来的程序就不再是死板的“一条路走到黑”,而是能根据实际情况灵活变化的“智能”程序了!
例题精讲
以下哪个if-else语句的写法在C++中是合法的?
执行以下代码后,输出是什么? int x = 4; if (x % 2 == 1) { cout << "奇数"; } else { cout << "偶数"; }
在if-else语句中,如果条件表达式的值为假,则执行else后面的语句块。
在C++中,if-else语句可以嵌套使用,即在if或else分支中再写另一个if-else语句。
以下程序判断输入的整数是否能被3整除,请补全if条件。
int num;
cin >> num;
if (___) {
cout << "能被3整除";
} else {
cout << "不能被3整除";
}