逻辑“与”运算符(即&&
)是一个二元运算符,它结合了两个逻辑表达式。
评估为true
或false
的两个表达式。 考虑以下表达式:
test1 && test2
如果表达式test1
和test2
都计算为true
,则此表达式的计算结果为true
。
如果其中一个或两个操作数均为false
,则操作结果为false
。
示例代码:
if(age > 12 && age < 20)
printf("少年,努力吧,未来是你的!");
仅当age
的值为13
到19
(含)时,才会执行printf()
语句。&&
运算符的操作数可以是bool
变量。可使用以下内容替换上面语句:
bool test1 = age > 12;
bool test2 = age < 20;
if(test1 && test2)
printf("少年,努力吧,未来是你的!");
或运算符||
“或”运算符(即||
),用于检查两个或多个条件中的任何一个是否为真。
如果||
的一个或两个操作数运算结果是真,那结果是true
。仅当两个操作数均为假时,结果为false
。
以下是使用||
运算符的示例:
if(a < 10 || b > c || c > 50)
printf("至少有一个条件是真的。");
只有当a < 10
,b > c
或c > 50
这三个条件中的至少一个为真时,才会执行printf()
。
可以使用&&
和||
逻辑运算符组合:
if((age > 12 && age < 20) || rate > 5)
printf ("你是青少年或者是游戏玩家,或者两者都是。");
可以使用以下内容替换先前的语句:
bool over_12 = age > 12;
bool undere_20 = age < 20;
bool age_check = over_12 && under_20;
bool rate_check = rate > 5000;
if(age_check || rate_check)
printf ("你是青少年或者是游戏玩家,或者两者都是。");
可以在一个步骤中定义age_check
的值,如下所示:
bool age_check = age > 12 && age < 20;
bool rate_check = rate > 5000;
if(age_check || rate_check)
printf ("你是青少年或者是游戏玩家,或者两者都是。");
非运算符!
“非”运算符(也是!
运算符)。!
运算符是一元运算符,因为它只适用于一个操作数。
逻辑NOT
运算符反转逻辑表达式的值:true
变为false
,false
变为true
。
bool a = false;
boll b = true;
// 那么
if(!a){ // 结果为 true
}
if(!b){ // 结果为 false
}