Appearance
6. 关系与逻辑运算符:真假对决
前置学习:运算符与表达式
程序之所以能拥有“智能”,是因为它能对外界的情况进行判断。 在 C++ 中,所有的判断结果只有两种:成立 (true) 或 不成立 (false)。在计算机底层,true 的值就是 1,false 的值就是 0。
1. 关系运算符:比大小
用于比较两个数据的符号,叫关系运算符。
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
> | 大于 | 5 > 3 | 1 (true) |
< | 小于 | 5 < 3 | 0 (false) |
>= | 大于或等于 | 5 >= 5 | 1 (true) |
<= | 小于或等于 | 5 <= 4 | 0 (false) |
== | 等于 | 5 == 5 | 1 (true) |
!= | 不等于 | 5 != 3 | 1 (true) |
💀 致命陷阱:= 和 == 的终极混淆 这是 99% 的初学者都会犯的错,一旦写错,程序不会报错,但逻辑会全盘崩溃!
=(单个等号)叫赋值:意思是把右边的东西,硬塞进左边的变量盒子里。==(双等号)叫判断相等:意思是提出疑问,“左边和右边相等吗?”
2. 逻辑运算符:组合条件
有时候一个判断条件不够用,比如“必须是周末”并且“作业做完了”,才能打游戏。这时候就需要逻辑运算符。
| 运算符 | 名字 | 规则 | 记忆口诀 |
|---|---|---|---|
&& | 逻辑与 (AND) | 左右两边都为真,结果才为真。 | “一假必假”(必须全满足) |
|| | 逻辑或 (OR) | 左右两边只要有一个为真,结果就为真。 | “一真必真”(满足一个就行) |
! | 逻辑非 (NOT) | 颠倒黑白。真的变成假的,假的变成真的。 | “唱反调” |
注:|| 这个符号在键盘上的位置是:按住 Shift + \(回车键上面的那个键)。
3. 极易错:数学连写的灾难
在数学课上,我们经常这样表示一个数在 10 到 20 之间:$10 < x < 20$。 如果你把这个式子原封不动地写进 C++ 代码里,编译器不会报错,但会算出极其诡异的结果!
错误原因剖析: 电脑执行 10 < x < 20 时,是从左到右算的。 假设 x 是 100。首先算 10 < 100,结果是真(1)。然后拿算出来的 1 继续和后面比:1 < 20,结果为真。 于是,电脑最终判定 $10 < 100 < 20$ 是成立的!这完全违背了我们的本意。
竞赛标准写法:必须拆开,用 && 连接!
cpp
// 翻译成机器语言:x 大于 10,并且 x 小于 20
x > 10 && x < 204. 动手实践
md
1. 打开左下角的代码沙盒。
2. 试着预测以下代码的输出结果,然后运行验证你的猜想:cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
int score = 85;
bool isExcellent = (score >= 90);
bool isPass = (score >= 60 && score <= 100);
cout << isExcellent << endl;
cout << isPass << endl;
return 0;
}