四、进一步的判断与循环
@bool类型:头文件---#include<stdbool.h>;在源代码中加入这个头文件就可以使用bool、true和flase了。
@逻辑运算:逻辑运算是对逻辑量进行的运算,结果只有0或1。
@逻辑量:它是关系运算或逻辑运算的结果。
@逻辑非:运算符---'!',示例"!a"表示---如果a是true,结果就是flase;如果a是flase,结果就是true。
@逻辑与:运算符---'&&',示例“a&&b”表示---如果a和b都是true,结果就是true;否则,结果就是flase。如果左边的结果已经能够决定结果了,就不会做右边的运算,左边为0,这称为短路!
@逻辑或:运算符---'||',示例“a||b”表示---如果a和b有一个是true,结果为true;否则,结果就是flase。如果左边的结果已经能够决定结果了,就不会做右边的运算,左边为1,这称为短路!
@age>20&&age<30等价于20<age<30。
@age<0||age>99等价于age<0或者age>99。
@!age<20则是先计算!age,所以正确的写法是!(age<20)。
@条件运算符:语句1?语句2:语句3---语句1为条件语句;语句2为条件满足时的语句;语句3为条件不满足时的语句。条件运算符的优先级高于赋值运算符,但是低于其他运算符。当出现嵌套条件运算符时,是自右向左结合的。
@逗号运算符:逗号是用来连接两个表达式的,并以其右边表达式的值作为它的结果。逗号的优先级是所有运算符里最低的(比赋值运算符的优先级还低),所以它两边的表达式会先计算;逗号的组合关系是自左向右,所以左边的表达式会先计算,而右边表达式的值就留下来作为逗号运算符的结果。主要用于for循环---for(i=0, j=10; i<j; i++, j--){}
@else总是和最近的那个if匹配。缩进格式不能暗示else的匹配。但是,可以用大括号{}来改变else的匹配。
@switch语句可以看作是一种基于计算的跳转,计算控制表达式的值后,程序会跳转到相匹配的case(分支标号)处。分支标号只是说明switch内部位置的路标,在执行完分支中的最后一条语句后,如果后面没有break,就会顺序执行到下面的case里去,直到遇到一个break,或者switch结束为止。