分支结构
程序的流程控制语句:
1、顺序结构 - 默认值:从上向下依次执行每句话
2、分支结构 - 通过条件判断,选择部分代码执行
3、循环结构 - 通过条件判断,要不要反复执行某代码
如何使用:
1、if分支:
1、一个条件,一件事,满足就做,不满足就不做
if(条件){
操作;
}
2、一个条件,两件事,满足就做第一件,不满足就做第二件
if(条件){
操作;
}else{
默认操作;
}
3、多个条件,多件事,满足谁就做谁
if(条件){
操作;
}else if(条件2){
操作;
}else if(条件3){
操作;
}else{
默认操作;
}
注意: 1.分支只要满足了一条路。就不会再走别的路,书写顺序很重要
2.else if想写多少句,由程序员决定
3.else 可以省略不写,但不推荐,如果条件不满足,则都不执行
4.分支结构可以嵌套
2、switch...case分支 前提:只有知道最后的结果是什么,才能用
语法:
switch(变量/表达式){
case 值1:
操作 1;
break;
case 值2:
操作 2;
break;
case 值3:
操作 3;
break;
default:
默认操作;
}
注意:1.case的比较不带隐式转换
2.问题:默认只要一个case满足以后,会把续所有操作做完
解决:每个case的操作后跟上一个break,最后一个default可以省略break,如果多个条件做法是一样的,可以省略中间部分
3.default 可以省略,但不推荐
if 和 switch 的区别
1.switch...case 优点:执行效率高,速度比较快(比较时,case做的不是范围查找而是等值比较,且不带隐式转换)缺点:不能做范围查找
2.if...else 优点:可以做范围比较 缺点:执行效率低,速度比较慢
建议:代码开发完毕后,要多做代码优化,尽量少用if...else,将其替换成switch...case
3、三目运算:纯粹为了简化[简单的]分支;操作只能有一句话
语法:
短路逻辑:条件&&(操作) ===if
条件?操作1:默认操作; ===if...else
条件1?操作1:条件2?操作2;默认操作; ===if...else if...else
注意:1.默认操作是不能省略的,省略会报错 - 其实算优点
2.如果操作比较复杂,不能使用三元运算