逻辑运算符

现实生活中我们常说”并且””或者””相反”这类词语,对应到 C 语言中就是逻辑运算符。当单个条件不足以描述需求时,就需要将多个条件组合起来进行判断。

1. 为什么需要逻辑运算符

以教程中的例子说明:

生活场景逻辑含义代码映射
感觉良好 且​ 当天是工作日 → 去上班两个条件同时满足​feeling_good && is_weekday
生病了 或者​ 当天是周末 → 待在家两个条件至少满足一个​is_sick \|\| is_weekend
不感觉良好 → 躺床上条件取反​!feeling_good

2. 逻辑与运算符 &&

&& 是二元运算符,用于合并两个逻辑表达式:

test1 && test2

真值规则:只有 test1 和​ test2 同时为 true,整个式子结果才为 true;任一为 false,结果即为 false。

test1test2test1 && test2
truetruetrue​
truefalsefalse
falsetruefalse
falsefalsefalse

代码示例:

if(age > 12 && age < 20)
    printf("你是青少年");Code language: JavaScript (javascript)

含义:年龄大于 12 且 小于 20,即 13~19 岁之间才执行。

也可以拆分为中间变量:

bool test1 = age > 12;
bool test2 = age < 20;
if(test1 && test2)
    printf("你是青少年");Code language: JavaScript (javascript)

多个条件串联:

if(age > 12 && age < 20 && savings > 5000)
    printf("你是富裕的青少年");Code language: HTML, XML (xml)

三个条件全部满足才输出。

3. 短路求值(Short-Circuit Evaluation)

&& 具有短路特性:如果 test1 为 false,编译器不会再求值 test2,直接判定整个式子为 false。

if(count > 0 && total / count > 10)  // 安全:count 为 0 时不会执行除法
    printf("平均大于10\n");Code language: JavaScript (javascript)

若没有短路,count == 0 时 total / count 会导致除零错误。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注