黑马程序员__C语言逻辑运算符和三目运算符

-----------android培训java培训、java学习型技术博客、期待与您交流!------------ 

一.逻辑运算符

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>、期待与您交流! ----------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值