if(关系表达式)只要关系表达式的值是逻辑值,可以区分不真或是假.
语句1
else
语句2
-----------------------------
!,&&,||(优先级从高到低)
关系运算符中除了!比算术运算符要低.
注意: 短路问题
main()
{int a=0,b=1;
a++&&b++;//a=? b=?--a=1,b=1(因为a++已经得出表达式必为假,后面不处理.)
a++||b++;//a=? b=?--a=2,b=1(同理,a++已经得出表达式必为真,后面b没有自增)
}
-----------------------------------
条件运算符:()?:少有的3目运算,(自右向左)
为表达式1?表达式2:表达式3
注意:如果表达式2与表达式3类型不同,则要转化为最高类型
如: x>y?1:1.5
如果在取1的情况下,要把1转化为1.0
-----------------------------------
switch语句
多分支选择语句
switch(表达式)//此表达式可以为任何类型
{
case 常量表达式1:语句1;break;//不注意给忘了写上.
...
default:语句 //可以不加break,它与出现顺序无关,总是最后执行.
}
case是执行完一个语句后,转到下一个case语句.
case只是起语句标号作用,并不进行条件判断.找到语句标号后,从此处开始向下执行.(在goto中也是这个道理)
break使得此语句有多个出口.