@【C】浙江大学程序设计入门——C语言进一步的判断与循环【四】
bool
#include <stdbool.h>
之后就可以使用 bool 、true 、false
逻辑运算
! 逻辑非
&& 逻辑与
|| 逻辑或
优先级
! > && > ||
- () 从左到右
- ! +(单目) -(单目) ++ – 从右到左
- * / % 从左到右
- + - 从左到右
- < <= > >= 从左到右
- == != 从左到右
- && 从左到右
- || 从左到右
- = += -= *= /= %= 从右到左
短路
逻辑运算是自左向右进行的,如果左边的结果已经能决定结果,就不会做右边的计算
a==6 && b += 1
不要把幅值,复合赋值组合进表达式
条件运算符
条件、条件满足时的值和不满足值
(count>20)?a:b
条件运算符高于赋值运算符,低于其他任何
自右向左结合
逗号运算符
逗号比赋值优先级还低
主要在for中使用
用来连接两个表达式,并以其右边的表达式为结果。两边的表达式会先计算,右边的值留下来作为逗号表达式的结果
for(i=1,j=2;;)
嵌套
如果if条件满足或不满足时,又进一个if 这就是if的嵌套语句。
缩进不能影响else的匹配。在没有大括号时,else跟最近的if匹配。在if或else后始终用{}。
级联
类似于分段函数
if
else if
else
不用再进else里的大括号
单一出口原则程序里操作不要多次输出
多路分支
switch (<控制表达式>)
{
case 1:
;
break;
default:
;
}
不会像级联一样 从头判断
控制表达式只能是整数型(int)结果
如果没有break 会顺序执行下面的case case只是跳转
可以利用这个特性
随机数
rand() 生成随机整数
判断和循环常见错误
if
1 忘了大括号
2 if后面加了分号
3 错误使用 == 和 =
4 使人困惑的else
代码风格
if else 后必须要有大括号
大括号后 tab缩进