C 语言 - 条件中的逻辑运算符
条件中的逻辑运算符
您可以使用逻辑运算符组合或反转条件。它们与 if、else 和 else if 协同工作,以构建更复杂的决策。
&&(与)- 所有条件都必须为真||(或)- 至少有一个条件必须为真!(非)- 反转条件(真 → 假,假 → 真)
与 (&&)
当两个条件都必须为真时,使用 与 (&&):
实例
测试 a 是否大于 b,并且 c 是否大于 a:
int a = 200;
int b = 33;
int c = 500;
if (a > b && c > a) {
printf("Both conditions are true\n");
}
或 (||)
当至少有一个条件可以为真时,使用 或 (||):
实例
测试 a 是否大于 b,或者 a 是否大于 c:
int a = 200;
int b = 33;
int c = 500;
if (a > b || a > c) {
printf("At least one condition is true\n");
}
非 (!)
非运算符(!)反转条件:
- 如果条件为
true,!使其为假。 - 如果条件为
false,!使其为真。
这在您想要检查某事物不成立时很有用:
实例
测试 a 不大于 b:
int a = 33;
int b = 200;
if (!(a > b)) {
printf("a is NOT greater than b\n");
}
实际应用示例
在实际程序中,逻辑运算符常用于访问控制。例如,要获得对系统的访问权限,需要满足特定要求:
您必须已登录,并且需要是管理员,或者具有高级安全许可(级别 1 或 2):
实例
bool isLoggedIn = true;
bool isAdmin = false;
int securityLevel = 3; // 1 = 最高级别
if (isLoggedIn && (isAdmin || securityLevel <= 2)) {
printf("Access granted\n");
} else {
printf("Access denied\n");
}
// 尝试更改 securityLevel 和 isAdmin 以测试不同结果:
// securityLevel 1 = Access granted
// securityLevel 2 = Access granted
// securityLevel 3 = Access denied
// securityLevel 4 = Access denied
// 如果 isAdmin = true,则 access is granted.