C++ 条件中的逻辑运算符

条件中的逻辑运算符

您可以使用逻辑运算符组合或反转条件。它们与 if、else 和 else if 协同工作,以构建更复杂的决策。

  • &&(与)- 所有条件都必须为真
  • ||(或)- 至少有一个条件必须为真
  • !(非)- 反转条件(真 → 假,假 → 真)

与 (&&)

当两个条件必须为真时,使用 与 (&&):

实例

测试 a 是否大于 b并且 c 是否大于 a

int a = 200;
int b = 33;
int c = 500;

if (a > b && c > a) {
  cout << "两个条件都为真";
}

亲自试一试

或 (||)

至少有一个条件可以为真时,使用 或 (||):

实例

测试 a 是否大于 b,或者 a 是否大于 c

int a = 200;
int b = 33;
int c = 500;

if (a > b || a > c) {
  cout << "至少一个条件为真";
}

亲自试一试

非 (!)

非运算符(!反转条件:

  • 如果条件为真,! 使其为假。
  • 如果条件为假,! 使其为真。

这在您想要检查某事物不成立时很有用:

实例

测试 a 大于 b

int a = 33;
int b = 200;

if (!(a > b)) {
  cout << "a 不大于 b";
}

亲自试一试

实际应用示例

在实际程序中,逻辑运算符常用于访问控制。例如,要获得对系统的访问权限,需要满足特定要求:

您必须已登录,并且需要是管理员,或者具有高级安全许可(级别 1 或 2):

实例

bool isLoggedIn = true;
bool isAdmin = false;
int securityLevel = 3; // 1 = 最高级别

if (isLoggedIn && (isAdmin || securityLevel <= 2)) {
  cout << "访问已授权。";
} else {
  cout << "访问被拒绝。";
}

// 尝试更改 securityLevel 和 isAdmin 以测试不同结果:
// securityLevel 1 = 访问已授权
// securityLevel 2 = 访问已授权
// securityLevel 3 = 访问被拒绝
// securityLevel 4 = 访问被拒绝
// 如果 isAdmin = true,则访问已授权。

亲自试一试