一.逻辑运算符
1.!逻辑非得原理
起始就取反, 真变假 假变真
格式:!条件表达式;
返回结果:只有两个 真(1) 假(0)
运算结合方向:从右至左
int a = 10;
int result = !(a > 15);
int result = !!!(a > 15);
printf("result = %d\n", result);
2.|| 逻辑或的原理
|| 逻辑或 (或)
格式: 条件表达式1 || 条件表达式2;
返回结果:只有两个 真(1) 假(0)
规则:先判断条件表达式1是否为真,再判断条件表达式2是否为真,如果条件表达1“或者”条件表达式2为真结果就为真
口诀:一真则真
int a = 10;
int b = 20;
int result = (a > 15) || (b > 5);
printf("result = %d\n", result);
int result = 0 || 20;
printf("result = %d\n", result);
原理:
逻辑或运算结合方向:从左至右
逻辑或当条件表达式1为真时就不会再去判断条件表达式2
3.&& 逻辑与的原理
&& 逻辑与 (并且)
格式: 条件表达式1 && 条件表达式2;
返回值:只有两个 真(1) 假(0)
规则:先判断条件表达式1是否为真,再判断条件表达式2是否为真,如果条件表达式1和条件表达式2“都”为真,则返回真
口诀:一假则假
int a = 10;
int b = 20;
int result = (a > 15) && (b > 5);
printf("result = %d\n", result);
注意:C语言中任何非0的值都为真
int result = 0 && 11;
printf("result = %d\n", result);
原理:
逻辑与的运算结合方法:从左至右
逻辑运算,当前面一个表达式为假 后面一个表达式就不会参与运算
二.三目运算符
1.单目:
!条件表达式;(同上!逻辑非得原理)
int a = 10;
int result = !(a > 15);
int result = !!!(a > 15);
printf("result = %d\n", result);
2.双目:
条件表达式1 && 条件表达式2;(同上&&逻辑非得原理)
int a = 10;
int b = 20;
int result = (a > 15) && (b > 5);
printf("result = %d\n", result);
3.三目运算符
格式: 条件表达式 ? 结果A : 结果B;
规则:当条件表达式为真的时候返回结果A, 否则返回结果B;
1.计算3个整数之间的最大值
int a = 10;
int b = 35;
int c = 20;
1.先判断其中两个变量的最大值,
int temp = a > b ? a : b;
2.再拿到刚才算出来的最大值和剩下的变量比较
int max = temp > c ? temp : c;
弱点:1.可读性不好 2.效率不高
int max = (a > b ? a : b) > c ? (a > b ? a : b) : c;
printf("max = %d\n", max);
int a = 10;
注意点:如果条件表达式为真,没有写结果A 默认返回1
int result = (a > 1?:5);
printf("result = %d\n", result);
--------------------- <a target="blank">ASP.Net+Android+IOS开发</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------