C++逻辑运算符的用法(附带实例)
逻辑运算符可根据表达式的真、假属性返回真值或假值。C++ 中,表达式的值非 0,表示其值为真。非 0 的值参与逻辑运算,等价于 1;假值总是为 0。
逻辑运算中,非 0 代表真,0 代表假。逻辑运算后,会返回一个结果,1 代表真,0 代表假。逻辑运算过程如下表所示。
逻辑运算可以嵌套,当存在多个逻辑运算符时,其结合性为自左向右。例如,(A||B)&&C 等同于 A||B&&C,即先对 A 和 B 进行逻辑或运算,得到的结果再与 C 进行逻辑与运算。
使用逻辑表达式的注意事项如下:
【实例】某模特公司要求应聘者的年龄在 20~30 岁之间。假设有一名应聘者,年龄为 32 岁,判断他是否满足应聘要求。代码如下:
C++逻辑运算符
逻辑运算符可对真和假两种逻辑值进行运算,运算后的结果仍是一个逻辑值。逻辑运算符有 3 个,分别是逻辑与、逻辑或和逻辑非,如下表所示。运算符 | 功能 | 数目 | 用法 | 说明 |
---|---|---|---|---|
&& | 逻辑与 | 双目 | expr1 && expr2 | 两个表达式都为真时,逻辑运算结果为真 |
|| | 逻辑或 | 双目 | expr1 || expr2 | 两个表达式只要有一个为真,逻辑运算结果为真 |
! | 逻辑非 | 单目 | !expr | 表达式为真,逻辑运算结果为假 |
逻辑运算中,非 0 代表真,0 代表假。逻辑运算后,会返回一个结果,1 代表真,0 代表假。逻辑运算过程如下表所示。
expr1 | expr2 | expr1 && expr2 | expr1 || expr2 | !expr1 | !expr2 |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 1 |
0 | 非 0 | 0 | 1 | 1 | 0 |
非 0 | 0 | 0 | 1 | 0 | 1 |
非 0 | 非 0 | 1 | 1 | 0 | 0 |
逻辑运算可以嵌套,当存在多个逻辑运算符时,其结合性为自左向右。例如,(A||B)&&C 等同于 A||B&&C,即先对 A 和 B 进行逻辑或运算,得到的结果再与 C 进行逻辑与运算。
C++逻辑表达式
逻辑表达式的值也是逻辑型,只能取真或假。其一般形式如下:表达式1 逻辑运算符 表达式2
使用逻辑运算符,可以将多个关系表达式的结果合并在一起进行判断。逻辑表达式的值则是各种逻辑运算的最后值。使用逻辑表达式的注意事项如下:
- 逻辑运算符两侧的表达式结果,除可以是 0 和非 0 的整数外,还可以是其他任何类型的数据,如实型、字符型等;
-
逻辑运算符两侧的表达式,并不都需要进行判定或求解:
- 对于逻辑与运算,如果表达式 1 判定为假,系统不再判定或求解表达式 2;
- 对于逻辑或运算,如果表达式 1 判定为真,系统不再判定或求解表达式 2。
【实例】某模特公司要求应聘者的年龄在 20~30 岁之间。假设有一名应聘者,年龄为 32 岁,判断他是否满足应聘要求。代码如下:
#include <iostream> using namespace std; int main() { int age = 32; if(20<= age && age <= 30) // if 语句中使用逻辑与表达式,判断应聘者年龄是否在 20~30 岁之间 { cout << age << "岁,满足招聘要求" << endl; } else { cout << age << "岁,不满足招聘要求" << endl; } return 0; }程序运行结果为:
32岁,不满足招聘要求