逻辑运算
逻辑运算是对逻辑量进行的运算,结果只有0(false)或1(ture)
逻辑量是关系运算或逻辑运算的结果
例句:age>20&&age<30;
age的值在20到30之间(不包括数字20和30)
例句:index<0||index>99;
index的值不在0到99之间(不包括数字0和99)
例句:!age<20;
!是单目运算符,他的运算优先级要比<来得高,所以要先算!age,再去跟20比较。如果age是1,那么!age的值为0,如果age是0,那么!age的值为1。1和0都小于20,所以这个表达式的结果为0;
逻辑运算符的优先级:!>&&>|| !是单目运算符,优先级很高!
例句:!done &&(count>max);
先算!done,再算count>max,最后算&&;
目前学到的所有运算符优先顺序!
逻辑运算使用示例:
代码语言:javascript复制if(done==0){
if(fall==1){
printf("lalala");
}
}
改写成
if(done==0&&fall==1){
printf("lalala");
}
逻辑运算是自左向右进行的,如果左边的结果已经能够决定结果了,就不会左右边的计算;
例句:a>0&&a >1
如果a不大于0,那么a >1不会进行计算,此逻辑运算的结果为0
对于&&,左边是false时就不做右边
对于||,左边是ture时就不做右边
条件运算符
代码语言:javascript复制if(count>20)
count=count-10;
else
count=count 10;
改写成
↓
count=(count>20)?count-10:count 10;
?前面是条件,?后面是条件满足时做的动作,:后面是条件不满足时做的动作 条件运算符基本形式:(条件)?条件满足时做的动作:条件不满足做的动作;
优先级:条件运算符的优先级高于赋值运算符,但是低于其他运算符
例句: a >1&&b-->2?a:b;
如果a 的值大于1且b--的值大于2时,结果是a,如果a 的值不大于1或者b--的值不大于2(任意一条)时,结果是b;
例句: x=3*a>5?5:20;
如果x=3*a的值大于5的话,结果是5,否则是20
逗号运算符
逗号用来连接两个表达式,并以其右边的表达式的值作为它的结果。逗号的优先等级是所有运算符中最低的,所以他两边的表达式会先计算;逗号的组合关系时自左向右的,所以左边的表达式会先计算,而右边的表达式的值就留下来作为逗号运算的结果。
例句:i=3 4,5 6;
结果i=7,因为=的优先级大于,
例句:i=(3 4,5 6);
结果i=11,因为3 4,5 6用括号括起来了,所以先算3 4,5 6,而逗号运算符是把后面的值赋给前面。所以结果等于11