分支结构
if语句
- 语法结构:
if (/* 条件表达式 */) {
// 执行语句
}
if (/* 条件表达式 */){
// 成立执行语句
} else {
// 否则执行语句
}
if (/* 条件1 */){
// 成立执行语句
} else if (/* 条件2 */){
// 成立执行语句
} else if (/* 条件3 */){
// 成立执行语句
} else {
// 最后默认执行语句
}
if-else 语句
两个分支,只能执行一个分支
if-else语句的语法:
if(表达式){
代码1
}else{
代码2
}
执行过程:
如果表达式的结果是true则执行代码1,如果表达式的结果是false,则执行代码2
三元表达式
- 语法:
表达式1 ? 表达式2 : 表达式3
是对if……else语句的一种简化写法
三元表达式
运算符号: ? :
两个分支,最终的结果是两个分支中的一个,像这种情况可以使用三元表达式
语法:
var 变量=表达式1?表达式2:表达式3;
执行过程:
表达式1的结果是true还是false,如果是true则执行表达式2,然后把结果给变量
如果表达式1的结果是false,则执行表达式3,把结果给变量
switch语句
- 语法:
switch(表达式){
case 值1:代码1;break;
case 值2:代码2;break;
case 值3:代码3;break;
case 值4:代码4;break;
...多个case
default:代码5;
工作原理:首先设置表达式 (通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。
- 注意问题:
default后面的break是可以省略的
default也可以省略switch-case 语句中和case后面的值比较的时候使用的是严格的模式
break是可以省略执行过程:
获取表达式的值,和值1比较,如果一样,则执行代码1,遇到break则跳出整个的语句,后面代码不执行如果表达式的值和值1不一样,则和值2比较,如果相同则执行代码2,遇到break则跳出,否则和值3比较,相同则执行代码3,遇到break,跳出,
如果前面的值比较都不相同,则直接执行代码5
if 与 switch 的比较
switch case vs else if
switch case 仅用于等于比较的条件
else if 可用任意条件
if(Boolean(条件)) else if()
自带隐式转换,将条件转为boolean
效率稍微低
switch case
不带隐式转换的等于比较,效率稍微高
分支结构总结
分支语句:
if语句:一个分支
if-else语句:两个分支,最终只执行一个分支
if-else if-else if…语句: 多个分支,也是只会执行一个
switch-case语句:多分支语句,最终也会一个(必须要有break)
三元表达式:和if-else语句是一样的
什么时候使用if-else if…: 一般是对范围的判断
什么时候使用switch-case语句:一般是对具体的值的判断
如果有多个分支,是针对范围的判断一般选择if-else if的语句
如果有多个分支,是针对具体的值判断,一般选择用switch-case语句