if和switch都是条件分支语句,if主要用于判断这个条件的真假(true、false);switch主要用以对条件进行选择执行。
if是判断语句
关键字: if(如果的意思) else(否则的意思)
格式1:
if(boolean表达式){
多行语句;...
}
表达式的结果是true,进入大括号中执行,执行完后,继续后续代码。
表达式的结果是false,跳过大括号,执行后续的代码。
格式2:
if(boolean表达式){
语句1;...
}else{
语句2;...
}
表达式的结果是boolean类型。
如果是true,执行语句1,整个语句结束,继续执行后续的代码。
如果是false,执行语句2,整个语句结束,继续执行后续的代码。
格式3:
if(条件1){
语句1;
}else if(条件2){
语句2;
}else if(条件3){
语句3;
}...else{
语句n;
}
先执行条件1,结果是true,执行语句1,整个语句结束,执行后续代码;如果是false
执行语句2,结果是true,执行语句2,整个语句结束,执行后续代码;如果是false
执行语句3,...依次类推,所有的条件都是false,执行语句n,整个语句结束。
格式4:
if(条件1){
if(条件2){
语句;...
}
}
嵌套语句,一个语句中包含另一个语句。
先执行条件1,结果是false,整个结构结束,执行后续代码。
结果是true,进入到大括号里,执行条件2,结果是false,整体结束,执行后续代码
如果是true,执行大括号中的语句.
switch 是选择语句
关键字:switch case default break
switch语句其实是if-else if...else 语句的另外一种体现形式。
switch(表达式){
case 常量值1:
语句1;...
break;
case 常量值2:
语句2;...
break;
...
default:
语句n;...
break;
}
特点:
1.表达式结果:byte short char int String 枚举
2.break语句是用来结束或叫做跳出switch语句
switch语句的右大括号,}也是可以结束switch语句。
3.如果不写break语句,也可以编译和运行,直至遇到break或“}” 时才会停止,体现了一种“穿透性”。
4. switch中的case间是没有顺序的包括default,default只有在所有的case值都没有匹配上,才会执行,与顺序无关。
执行顺序:
先计算表达式,带着结果进入到大括号中,该值与常量值1,进行比较,相同执行语句1,执行break,整个语句结束,继续执行后续的代码;如果不相同,与常量值2进行比较,相同执行语句2,执行break,整个语句结束,继续执行后续的代码;....以此类推,该与所有的常量值都不相同,执行default内容,执行语句n,执行完整个语句结束。
if和switch应该怎样区分使用:
1、当表达式是boolean类型时只能使用If;
2、如果是区间判断,建议使用if;
3、此外情况一般都是使用switch。