(1)if-else
第一种:
if(条件表达式){
执行表达式
}
第二种(二选一):
if(条件表达式){
执行表达式1
}else{
执行表达式2
}
第三种(多选一):
if(条件表达式){
执行表达式1
}else if(条件表达式){
执行表达式2
}else if(条件表达式){
执行表达式3
}
.......
else
说明:①else结构是可选的
②针对于条件表达式:
>如果多个条件表达式之间是”互斥“关系(没有交集的关系),则不管哪个判断和执行语句声明在上面还是在下面均无所谓
>如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面。
>如果多个条件表达式之间有包含的关系,通常需要将范围小的声明在范围大的上面,否则范围小的就没机会执行。
if-else语句当执行完其中一条语句时,直接出去了,不再继续执行下面的语句,例如下例中的score如果大于80,则执行完输出B,下面的C不再输出。
if(score=100){
System.out.println("A");
}else if(score>80){
System.out.println("B");
}else if(score>=60){
System.out.println("C");
}else{
System.out.println("D");
}
当把范围大的放在范围小的上面,如下面的例子,则当score>60时,输出C后就不再执行输出B的语句,则不符合题意
if(score=100){
System.out.println("A");
}
}else if(score>=60){
System.out.println("C");
}else if(score>80){
System.out.println("B");
}else{
System.out.println("D");
}
if-else结构可以嵌套使用。
总结:对于第一种if结构,每个if语句属于独立分支结构,执行完第一个若仍符合第二个if判断表达式,则继续往下执行。
对于二选一或多选一的if结构,执行完一个if,就不再继续往下执行。
(2)switch结构
switch(表达式){
case 常量1:
语句1;
break;(可选)
case 常量2:
语句2;
break;
..........
default:
语句;
break;
}
说明:
①根据switch表达式中的值,依次匹配各个case中的常量,一旦匹配成功,则进入相应的case结构中,调用其执行语句。然后继续向下执行其他case中的执行语句,直到遇到break关键字或switch-case结构末尾结束为止。
②break使用在switch-case中,表示一旦执行到此关键字就跳出该结构。
③switch结构中的表达式,只能是如下的6种类型:
byte、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)
④case之后只能声明常量,不能声明范围。
⑤break关键字是可选的。可根据实际情况考虑是否需要break。
⑥当多个case的执行语句相同时,可以考虑合并。
注:凡是可以使用switch-case的结构,都可以转换为if-else。我们写分支结构时,当发现既可以使用switch-case(同时,switch中表达式的取值情况不太多),又可以使用if-else时,我们优先选择switch-case,因为switch-case效率稍高。另外,二者也可以嵌套使用。