逻辑运算模板
与&&、或||、非!——组合多个条件判断
逻辑运算
与
或
非
短路
GESP1
#include <bits/stdc++.h>
using namespace std;
int main() {
bool a = true, b = false;
cout << (a && b) << endl; // 与 → 0
cout << (a || b) << endl; // 或 → 1
cout << (!a) << endl; // 非 → 0
// 组合条件
int age;
cin >> age;
if (age >= 6 && age <= 12) cout << "小学生" << endl;
if (age <= 12 || age >= 65) cout << "优惠" << endl;
// 短路求值:&& 左假不执行右,|| 左真不执行右
int x = 0;
if (x != 0 && 10 / x > 1) { /* 不会除零 */ }
// 优先级:! > && > ||
bool p = true, q = false, r = true;
if ((p || q) && r) cout << "成立" << endl;
return 0;
}
📖 要点说明
&&两真才真,||一真就真- 短路求值:
&&左假右不执行,||左真右不执行 - 优先级
!>&&>||,复杂条件多用括号
⚠️ 常见错误
- 混淆
&&和&(位与),||和|(位或) - 复杂条件不加括号,依赖优先级易出错
- 在
&&右侧放有副作用的代码