- 与:&&(左右两个表达式均为真才表示真)
- 或:||(左右两个表达式至少一个为真才表示真)
- 非:!(相当于取反,对真做非运算为假,对假做非运算为真)
-
int m = 20; int n = 30; if (m == 20 && n == 30) { cout << "m == 10 , n == 30" << endl; } if (m == 20 || n == 40) { cout << "两个表达式至少一个为真" << endl; } if (!(m < 20)) { cout << "!(m < 20)" << endl; } /*结果: m == 10 , n == 30 两个表达式至少一个为真 !(m < 20) */
- 短路问题
- 主要是针对逻辑与和逻辑或
- 对于逻辑与&&:如果第一个表达式检测到为假,那么剩下的表达式不再进行检查。
- 对于逻辑或||:如果第一个表达式检测到为真,那么剩下的表达式不再进行检查。
- 通过短路问题来判断类中的函数是否被初始化、是否为空
MyClass *myClass; ... //myClass.process() if(myClass != NULL && myClass.process()) { ... }