逻辑分支
单分支
语法:
if (条件表达式) {
当条件表达式的结果为 true 的时候要执行的代码
}
双分支
语法:
if (条件表达式) {
当条件表示式的结果为 true 的时候要执行的代码
} else {
当条件表达式的结果为 false 的时候要执行的代码
}
多分支
语法:
if (条件表达式1) {
当条件表达式1的结果为 true 的时候,要执行的代码
} else if (条件表达式2) {
当条件表达式2的结果为 true 的时候,要执行的代码
} else if (条件表达式3) {
当条件表达式3的结果为 true 的时候,要执行的代码
}
. . .
} else{
} # 多分支可以有若干个else if,else根据需要可以有也可以没有
分支结构的简写方式
如果 单分支 或 双分支 以及 多分支 的大括号中只有一行代码的时候,大括号可以省略。
分支结构的嵌套
例:定义三个变量,求出三个值中的最大值。
switch多路判断
语法:
switch (要判断的变量) {
case 值1:
执行的代码块
break;
case 值2:
执行的代码块
break;
. . .
default:
执行代码块
}
使用:
-
- break 表示当前分支执行后就结束 switch 的运行,后续代码不再运行
- default 可以理解为判断语句中的 else
- case 理解为 if 来判断这个变量是否全等于某个值
注意:使用多路判断的时候,能使用 switch 进行判断,就尽量使用 switch,因为 switch 的判断都是确定的值,条件比较简单,所以效率高。
使用场景:
-
-
如果判断的条件比较复杂,使用 if
-
条件是确定的值,分两种情况:
-
如果判断的分支小于等于3个,就使用 if,这时候的效率和 switch 一样
-
如果大于3个,就使用 switch。
-
-
switch 判断使用的是 全等于(===)
-
switch 穿透写法
如果 case 后面不写 break,那当前 case 执行后,会继续执行后面的 case 中的代码
输出1~5:
当 day 的值为 2 的时候,不会执行后面的代码,当 day 的值为 3 的时候,执行完 3 的代码,还会执行 4 的代码,因为 3 的代码后面没有 break。
这时候可以利用 switch 的这个特性,简写一些代码:
输入一个月份,判断并输出这个月有多少天?
if条件中的细节
if 条件的结果是布尔值,所以可以将 布尔值 当做条件放 if 的小括号中
如果将别的 非布尔值 的表达式或数据放入条件小括号中,会发生隐形类型转换
三元运算
if 双分支有一种简写方式:
条件 ? 条件成立时运行的代码段 : 条件不成立时运行的代码段;
这种 仅能表达简单双分支 的方式叫做三元运算,也叫做三元表达式。
三元运算有个特点:可以将整个表达式当做一个值,可以赋值给一个变量,也可以输出