适用对象: 完成了第 2 课(变量盒子、四则运算、cin)的同学 使用方式: 自学讲义。放在电脑旁边,边读边照着做 学完本课,你应该能:
if 让电脑根据情况做出不同的反应遇到问题怎么办:
老规矩——先把出问题的那一步重新读一遍,逐字对照。这节课最容易错的地方是把"判断相等"的
== 少写了一个等号。
打开 Dev-C++,新建源代码,保存为
lesson3.cpp。照着敲一遍上节课的翻倍机,确认还记得
cin/cout 怎么用:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
cout << n * 2 << endl;
return 0;
}运行成功(敲个数字试试)再往下读。
生活里你天天在比大小:"这个玩具比那个贵""我比弟弟高"。电脑也能比,而且比出的结果只有两种:对(真) 或 错(假)。
C++ 里比较用这些符号:
| 符号 | 意思 |
|---|---|
== |
等于(注意是两个等号!) |
!= |
不等于 |
> |
大于 |
< |
小于 |
>= |
大于等于 |
<= |
小于等于 |
试一试,把比较结果直接打印出来看看:
#include <bits/stdc++.h>
using namespace std;
int main() {
cout << (3 > 5) << endl;
cout << (3 < 5) << endl;
cout << (3 == 3) << endl;
return 0;
}屏幕显示:
0
1
1
📝 电脑里"对"用数字 1 表示,"错"用数字
0 表示。 3 > 5 是错的,显示
0;3 < 5 和 3 == 3
都是对的,显示 1。
⚠️ = 和 == 是两回事!
= 是"放数字进盒子"(上节课学的赋值),==
才是"问电脑相不相等"。这个符号本课会反复用到,一开始就记牢:一个等号是放东西,两个等号是问问题。
if 就是"如果"——满足条件就做一件事,不满足就跳过。
#include <bits/stdc++.h>
using namespace std;
int main() {
int score;
cin >> score;
if (score >= 60) {
cout << "及格了" << endl;
}
return 0;
}三步读:if
后面的小括号里放条件;条件成立,就执行紧跟着的大括号
{ }
里的内容;条件不成立,大括号里的内容整个跳过不执行。
分别输入 80 和 50
各跑一次,看看有什么不同——输入 50
时,屏幕什么都不显示,这是正常的,因为条件不成立,大括号被跳过了。
#include <bits/stdc++.h>
using namespace std;
int main() {
int score;
cin >> score;
if (score >= 60) {
cout << "及格了" << endl;
} else {
cout << "不及格" << endl;
}
return 0;
}else 跟在 if
的大括号后面,意思是"上面条件不成立的话,就做这个"。这次不管输入什么分数,屏幕都会有话说。分别输入
80 和 50 验证两种情况。
⚠️ 别忘了 if 后面的小括号和大括号
{ }——这是 C++ 的硬性规定,少一个都会报错。
做一个小游戏:电脑心里"想"了一个数
13(直接写在代码里),你猜一个数,电脑告诉你"猜对了"还是"猜错了"。
⭐ 基础:对不对(就用 lesson3.cpp)
#include <bits/stdc++.h>
using namespace std;
int main() {
int guess;
cin >> guess;
if (guess == 13) {
cout << "猜对了!" << endl;
} else {
cout << "猜错了" << endl;
}
return 0;
}试着输入 13、再输入别的数字,各跑一次。
⭐⭐ 进阶:加个提示(新建
guess2.cpp)
猜错的时候,再告诉玩家"猜大了"还是"猜小了"——这需要三选一,if
后面接一个 else if:
输入样例: 输入样例:
20 5
输出样例: 输出样例:
猜大了 猜小了
#include <bits/stdc++.h>
using namespace std;
int main() {
int guess;
cin >> guess;
if (guess == 13) {
cout << "猜对了!" << endl;
} else if (guess > 13) {
cout << "猜大了" << endl;
} else {
cout << "猜小了" << endl;
}
return 0;
}else if
的意思是"上面不成立,就再判断一个新条件"——三条路只会走一条:等于走第一条,大于走第二条,剩下的(也就是小于)走第三条。
⭐⭐⭐ 挑战:成年了没有(新建
age_check.cpp)
输入一个年龄,如果 大于等于 18,输出
成年了;否则输出
再等等,并且顺便算出还差几年(提示:18 - age)。
输入样例: 输入样例:
20 10
输出样例: 输出样例:
成年了 再等等
还差8年
#include <bits/stdc++.h>
using namespace std;
int main() {
int age;
cin >> age;
if (age >= 18) {
cout << "成年了" << endl;
} else {
cout << "再等等" << endl;
cout << "还差" << 18 - age << "年" << endl;
}
return 0;
}大括号 { } 里可以写不止一行——else
的大括号里这次写了两行 cout,都会执行。
| 代码 | 意思 |
|---|---|
== |
判断相等(两个等号,和赋值的 =
不一样!) |
!= > <
>= <= |
不等于、大于、小于、大于等于、小于等于 |
if (条件) { ... } |
条件成立才执行大括号里的内容 |
else { ... } |
上面条件不成立时执行 |
else if (条件) { ... } |
再加一层判断,用于三选一或更多 |
电脑的"对"和"错": 对 = 1,错 =
0。cout << (3 > 5) 显示
0。
= 和 ==
有什么不同,各举一个例子if / else if / else 的框架默写出来