易百教程

逻辑运算符

逻辑“与”运算符(即&&)是一个二元运算符,它结合了两个逻辑表达式。
评估为truefalse的两个表达式。 考虑以下表达式:

test1 && test2

如果表达式test1test2都计算为true,则此表达式的计算结果为true
如果其中一个或两个操作数均为false,则操作结果为false

示例代码:

if(age > 12 && age < 20)
   printf("少年,努力吧,未来是你的!");

仅当age的值为1319(含)时,才会执行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 < 10b > cc > 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变为falsefalse变为true

bool a = false;
boll b = true;

// 那么
if(!a){ // 结果为 true

} 
if(!b){ // 结果为 false

}