C语言基础第5天

1,关于Bool

      ● Bool 类型 
         #include <stdbool.h>
         之后就可以使用 bool 和 true、false
      
      ● Bool 就是 布尔型变量 ,类似于 float、double 等
         布尔型,用作逻辑型判断。
       
      ● Bool 取值 false 和 true
         false 可以取值 0  但是 true 可以有很多种, 并非只有 1 .

例如:
#include <stdio.h>
#include <stdbool.h>
int main()
{ bool a =5>3;
bool b=true;
bool c=false;
printf("%d\n",a);
printf("%d\n",b);
printf("%d\n",c);
return 0;
}
● 最后输出的结果是 1 1 0
● bool 的结果只能是 true 和 false
● printf 可以输出 false 为 0,但是 对于 true 的除了 1 的其他结果输不出来,
也没办法 输出 true 和 false 。

2 逻辑运算

概念:● 逻辑运算是对逻辑量进行的运算,结果只有 1 或 0 
           **
       难点★★★    ● 逻辑量是关系运算或逻辑运算的结果。**

逻辑运算符:! && ||

                                                                   如果 a 是 true 结果就是 false      
  !———→ 逻辑非———→!a————→如果 a 是 false 结果就是 true

                                                                    如果 a 和 b 都是 true    
 &&———→逻辑与———→a&&b———→结果就是 true 否则就是 false

                                                                    如果 a 和 b 有一个是true,结果就是 true
||————→逻辑或———→a || b———→ 如果 a 和 b 两个都是 false,结果为 false

3 如何表示数学中的区间
如:x∈(4,6)或 x∈[4,6]
即:x>4&& x<6 x>=4&&x<=6

如;判断一个字符是否是大写字母? 即: c >= ‘A’ && <=‘Z’ ? ???? ???? ??

趣味案例:
#include <stdio.h>
int main()
{
int a=‘B’;
if(a>=‘A’&&a<=‘Z’)
{printf(“OK\n”,a);}
else{printf(“NOT!\n”,a);
}
return 0;
}

重难点

特殊的案例: !age<20
● 逻辑运算符的优先级小于比较运算符的优先级
●因为单目优先级大于双目所以 !age 会先计算,
!age 的结果只能是 0或 1
所以正确的形式应该是 !(age<20)

3 总结:关于优先级
一、单目运算符>双目运算符
二、算术运算符>比较运算符>逻辑运算符

4.逻辑运算符的优先级

!>&&>||

5.汇总:
优先级
1 () 从左到右
2 !和单目+、- 从右到左
3 * / 从左到右
4 % 从左到右
5 + - 从左到右
6 < <= 从左到右
> >=

7 == != 从左到右
8 && 从左到右
9. | | 从左到右
10. 复合运算符 从右到左

即:括号>单目>算术>比较运算符>逻辑运算符>复合运算符

    ● 单目:!+ -
    ● 算术:* / >% >+.-
    ●比较运算符:> .>= ,<  <=大于 ==  1=
    ●逻辑运算符: !>&&>||

6.逻辑短路:
逻辑运算时自左向右进行的,如果左边的结果已经能够决定结果了,就不会再做右边的计算。
&&逻辑与的两边必须都成立

7.同样:对于 || 来说,如果左边是TRUE时,也不会在计算右边了。

8.小技巧:
复合运算符尽量不要写进逻辑运算式中,以免发生短路,

.9.条件运算符
通式:count = (count>20) ? count-10 :count+10;
解释:
● ?前面表示变量需要满足的条件,
● ?后面表示当变量满足条件时得到的结果。
●:(冒号) 后面是条件不满足时的结果。

等价于:
if(count>20)
count-10;
else
count+10;
● 条件运算符的优先级高于赋值运算符的优先级,但是比任何运算符的优先级都要 低。
●条件运算符的动作是自左向右的。

对于复杂的关系,最好还是用判断函数而不用条件运算符
条件运算符是C语言留下来的古老的方法。。

10 逗号在C语言中也是一个运算符,即

逗号运算符。

逗号运算符:● 用来连接两个表达式。
                    ● 以其右边的表达式的值作为它的结果。
                    ● 逗号运算符的优先级是最低的 (比赋值运算符还低)。
                    ● 组合方式:自左向右。
                    ● 左边式子先计算,右边的留下来作为逗号运算的结果。

用处:

              在 For 循环函数中使用,利于放多个计算式。
        如 For(i=o,j=10;i<j ; i++ ; j--)
        ●利于在for函数中放多个表达式。
        ●无论逗号运算式的结果为多少     对 for函数的计算无影响。
                                                           对逗号运算式中的赋值,初始化等运算也没有关系。

**

11.switch–case

常量:常数、常数计算的表达式。
通式: switch(控制表达式)
{ case 常量:
语句
break
case 常量:
语句
break
。。。。。。。。。
。。。。。。。。。
default:
语句
break

● 控制表达式只能是整数型的结果
● 常量可以是常数,也可以是常量计算的表达式。(C99独有)
如:const int RMB=30;
case RMB

基本概念和注意事项
● switch 语句可以看作是一种基于计算的转换。
● 计算完控制表达式后,程序会跳转到匹配的case

●在执行玩分支中的最后一跳语句后,如果后面没有 break 就会顺序执行到下面
的case里, 直到遇到下一个 break 或 switch

● case 常量 后面跟的是冒号。

● 一般情况下,每个 case 和 default 后面 都加一个 break,特殊情况除外。
● case 只是一个路口,并不能阻止句子执行,break 可以。

  1. .经典案例:

    #include <stdio.h>
    int main()
    { int days;
    scanf("%d",&days);
    switch (days){
    case 1:
    printf(“第一天\n”);
    break ;
    case 2:
    printf(“第二天\n”);
    break;
    default:
    printf(“啊,什么!\n”);
    break;
    }
    return 0;
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值