1.if分支语句
1.1语法形式:可嵌套,
if (表达式)
{语句1;语句2;……;} //可以依然是if语句
else if(表达式)//可用无限个else if
{语句3;语句4:……;}
else
{语句5;语句6;……;}
1.2else悬空问题:
当有多个if语句时,else总是和离得最近的if语句
为了语义清晰,不要吝惜大括号
2.关系运算符
2.1==相等;!=不等于;>=大于等于;<=小于等于;>大于;<小于
2.2多个运算符不宜连用;前面关系运算后,会根据真假返回1或0进行下一个关系运算
3.条件操作符(三目操作符)
3.1格式:表达式1?表达式2:表达式3
计算逻辑:如果表达式1为真,表达式2计算;如果表达式1为假,表达式3计算。计算结果是整个表达式的结果
e.g.比较a、b两者最大值: a>b ? a : b
4.逻辑运算符
4.1逻辑取反运算符!
a | !a |
非0(真) | 0(假) |
0(假) | 1(真) |
4.2逻辑与运算符&&
a&&b只有a和b都为真,运算结果才为真;否则为假
4.3逻辑或运算符||
a||b 只要a和b其中至少有一个为真,运算结果就为真;否则为假
e.g.判断是否是闰年
4.4短路:
逻辑运算符总是先对左侧的表达式求值,再求右侧。如果左边的表达式满足逻辑运算符的条件,就不再对右边的表达式求值。
&& 左边为假,右边无需计算,整体为假
|| 左边为真,右边无需计算,整体为真
5.switch分支语句
5.1格式:
switch(表达式){ //表达式必须是整形表达式
case value1:statement //case后的值必须是整型常量表达式,最后根据情况加break
case value2:statement
……
default:statement
}
case决定入口,break决定出口
5.2case和default的顺序问题
在switch 语句中 case子句和 default 子句有要求顺序吗? default 只能放在最后吗?
其实,在 switch 语句中case 语句和 default 语句是没有顺序要求的,只要你的顺序是满足实际需求的就可以。
不过我们通常是把default 子句放在最后处理的。
6.while循环语句
6.1格式:
while (表达式)
{语句1;语句2;……;}//一直循环执行,直到表达式条件为假