一、逻辑类型与运算
(一)逻辑类型——bool
- 原本为c++中才有,c++的bool中true表示1,false表示0
- C语言中C99之后才有
- C99后的版本有了“#include
” - 之后就可以使用bool、true和false
- 例:
#include
#include
int main()
{
bool b=6>5;
bool t=true;
t=2; //并没有真正bool量的类型,实际仍为整数
printf("d%n",b); //最终输出时仍为整数1而不是true
return 0;
}
(二)逻辑运算
- 逻辑运算是对逻辑量进行的运算,结果只有0(代表false)或者1(代表true)
- 逻辑量是关系运算或逻辑运算的结果
| 运算符 | 描述 | 示例 | 结果 |
| !(单目运算符) | 逻辑非 | !a |
|
| && | 逻辑与 | a&&b |
|
| || | 逻辑或 | a||b |
|
例:用C语言表达数学中的区间,如:x∈(4,6)或x∈[4,6]
- 错误示例:4
- 正确示例:开区间:4
- 正确示例:闭区间:4<=x&&x<=6
- 正确示例:开区间:4
例:判断一个字符c是否为大写字母
- c>='A'&&c<='Z'
优先级:!>&&>||
- &&和||优先级低于关系运算,高于赋值运算
注:逻辑运算是自左向右进行,如果左边已经能出结果则不会做右边的运算
- 对于&&,左边是false就不做右边
- 对于||,左边是true就不做右边
- 所以最好不要把赋值包括复合赋值组合进表达式
例:count=(count>20)?count-10:count+10
分别对应 条件?条件满足值:条件不满足值
等于if(count>20)
count=count-10;
else
count=count+10;
- 优先级高于赋值运算但是低于其他运算符低,但是会增加表达式难度
for中想要多个计算,如:for(i=0,j=10;i 即输入type值后直接跳进对应数值,不会从1,2,3顺次向下判断(但是级联if-else会) switch(控制表达式){ case 常量: 语句 —— case 常量: 语句 —— default: 语句 —— }
二、多路分支
(一)switch-case
#include



