C++逻辑运算符

C++逻辑运算符教程

C++ 中,逻辑运算符是用于连接多个条件(一般来讲就是关系表达式),最终的结果也是返回真或假,即 true 和 false。

C++逻辑运算符详解

语法

运算符 说明 范例
&& 逻辑与 A && B
|| 逻辑或 A || B
! 逻辑非 !A

说明

逻辑与,如果 A 和 B 的值都为真,那么结果为真,否则结果为假。如果 A 的值为假,那么不会计算 B 的值,这叫做短路。

逻辑或,只要 A 和 B 的值一个为真,那么结果为真,否则结果为假。如果 A 的值为真,那么不会计算 B 的值,这叫做短路。

逻辑非,如果原来 A 的值为真,那么结果为假。如果原来 A 的值为假,那么结果为真。

案例

逻辑与运算

使用 && 运算符,实现逻辑与判断

#include <iostream> using namespace std; int main(int argc, char **argv) { cout << "嗨客网(www.haicoder.net)\n" << endl; //使用 && 运算符,实现逻辑与判断 int age = 40; int b = age > 30 && age < 50; int c = age > 40 && age < 50; cout << "b = " << b << " c = " << c << endl; }

程序运行后,控制台输出如下:

12_C逻辑运算符.png

首先,我们定义了一个 变量 age 并赋值为 40。 接着,我们使用逻辑与运算符 &&,判断变量 age 的值是否大于 30 并且小于 50,并将比较结果赋值给 b。

我们再次使用逻辑与运算符 &&,判断变量 age 的值是否大于 40 并且小于 50,并将比较结果赋值给 c。

逻辑或运算

使用 || 运算符,实现逻辑或判断

#include <iostream> using namespace std; int main(int argc, char **argv) { cout << "嗨客网(www.haicoder.net)\n" << endl; //使用 || 运算符,实现逻辑或判断 int age = 40; int b = age > 30 || age < 50; int c = age > 40 || age < 30; cout << "b = " << b << " c = " << c << endl; }

程序运行后,控制台输出如下:

13_C逻辑运算符.png

首先,我们定义了一个变量 age 并赋值为 40。 接着,我们使用逻辑或运算符 ||,判断变量 age 的值是否大于 30 或者小于 50,并将比较结果赋值给 b。

我们再次使用逻辑或运算符 ||,判断变量 age 的值是否大于 40 或者小于 30,并将比较结果赋值给 c。

逻辑非运算

使用 ! 运算符,实现逻辑非判断

#include <iostream> using namespace std; int main(int argc, char **argv) { cout << "嗨客网(www.haicoder.net)\n" << endl; //使用 ! 运算符,实现逻辑非判断 int a = 1; int b = -1; int c = 0; int d = 100; int e = !a, f = !b, g = !c, h = !d; cout << "e = " << e << " f = " << f << endl; cout << "g = " << g << " h = " << h << endl; }

程序运行后,控制台输出如下:

14_C逻辑运算符.png

我们可以看到,在 C++ 中,只有 0 的 非运算的结果为 1,其他都是 0。

C++逻辑运算符总结

逻辑与,如果 A 和 B 的值都为真,那么结果为真,否则结果为假。如果 A 的值为假,那么不会计算 B 的值,这叫做短路。

逻辑或,只要 A 和 B 的值一个为真,那么结果为真,否则结果为假。如果 A 的值为真,那么不会计算 B 的值,这叫做短路。

逻辑非,如果原来 A 的值为真,那么结果为假。如果原来 A 的值为假,那么结果为真。