0802
if和switch
一.if
1.单分支if结构
(1)if语句是一种条件控制语句,用于根据条件的真假来执行不同的代码块。基本语法如下:
if(表达式){
语句
}
(2)单分支流程图
2.双分支if结构
(1)语法规则
if(表达式){
语句1
}else{
语句2
}
表达式为ture时,执行语句1
表达式为false时,执行语句2
(2)双分支流程图
3.多分支if结构
(1)语法规则
if(表达式1){
语句1
}else if(表达式2){
语句2
}else{
语句3
}
表达式1为ture时,执行语句1
表达式1为false时,表达式2为true时,执行语句2
表达式1和表达式2都为false时,执行语句3
(2)流程图
4.嵌套if控制语句
嵌套if控制语句是指在一个if语句中嵌套另一个if语句,以实现更复杂的条件判断。
(1)语法规则
if (表达式1) {
// 当条件表达式1为true时执行的代码块
if (表达式2) {
// 当条件表达式1为true且条件表达式2为true时执行的代码块
} else {
// 当条件表达式1为true且条件表达式2为false时执行的代码块
}
} else {
// 当条件表达式1为false时执行的代码块
if (表达式3) {
// 当条件表达式1为false且条件表达式3为true时执行的代码块
} else {
// 当条件表达式1为false且条件表达式3为false时执行的代码块
}
二.switch
switch语句是一种多分支选择结构,用于根据不同的条件执行不同的代码块。
(1)语法规则
switch (表达式) {
case 常量1:
// 当表达式的值等于常量1时,执行此处代码块
break;
case 常量2:
// 当表达式的值等于常量2时,执行此处代码块
break;
...
default:
// 当表达式的值不等于任何常量时,执行此处代码块
}
(2)流程图
(3)如果case语句中未写break,会一直执行下去,知道遇见break结束。
(4)switch新特性
switch表达式的计算结果为单个值,支持箭头表达式返回,支持yield和return返回值。此外,Java 14还增加了对新标签语法case ...->的支持,该语法采用的是非穿透语义 。
if 和 switch 各有什么特点,什么情况下用 if 更好?什么情况下 switch 更佳?两者如何选择
if 语句适用于区间判断,而 switch 语句适用于等值判断 。如果条件比较固定,可以使用 switch 结构;其他情况一律用 if 语句。
从字节码可以看出,在 switch 中只取出了一次变量和条件进行比较,而 if 中每次都会取出变量和条件进行比较,因此 if 的效率就会比 switch 慢很多。