在C++中,逻辑运算符用来对布尔值或者可以转换为布尔值的表达式进行逻辑判断。标准语言一共提供了三种基础逻辑运算:逻辑与、逻辑或和逻辑非,分别对应符号 &&、|| 和 !。它们通常出现在条件分支和循环控制中,用来把多个条件组合起来。
C++中的三种逻辑运算符
1. 逻辑与(&&)
逻辑与运算符连接两个表达式,只有当左右两边的结果都为 true 时,整体才返回 true。如果左边已经为 false,右边不会再被执行,这叫做短路求值。
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 10;
// 两边都为true才成立
if (a > 0 && b > 0) {
cout << "a和b都大于0" << endl;
}
return 0;
}
2. 逻辑或(||)
逻辑或运算符只要左右两边有一个为 true,结果就是 true。同样具有短路特性:如果左边为 true,右边不再计算。
#include <iostream>
using namespace std;
int main() {
int score = 85;
// 满足任一条件即可
if (score >= 90 || score >= 60) {
cout << "成绩及格" << endl;
}
return 0;
}
3. 逻辑非(!)
逻辑非是单目运算符,用来对布尔结果取反。原来为 true 的变成 false,原来为 false 的变成 true。
#include <iostream>
using namespace std;
int main() {
bool is_open = false;
// 取反后条件成立
if (!is_open) {
cout << "文件未打开" << endl;
}
return 0;
}
运算优先级与注意事项
在没加括号的情况下,三种运算符的优先级顺序是:逻辑非 ! 最高,其次逻辑与 &&,最后逻辑或 ||。为了避免阅读错误,建议复杂条件都用括号明确顺序。
| 运算符 | 名称 | 示例 | 含义 |
|---|---|---|---|
| && | 逻辑与 | a && b | 两边都真才真 |
| || | 逻辑或 | a || b | 一边真就真 |
| ! | 逻辑非 | !a | 对结果取反 |
小结
掌握 C++ 中的三种逻辑运算 &&、|| 和 !,并理解它们的短路行为和优先级,是写对条件判断的前提。实际编码时配合括号使用能让逻辑更清晰,也减少隐藏错误。