选择结构
在程序设计时,经常需要使用选择结构在程序中完成逻辑判断和选择功能,这就需要使用到选择语句。
Java中的选择语句包括if语句和switch语句。
选择语句用来控制选择结构,对选择条件进行判断,并根据判断结果选择要执行的程序语句,改变程序执行流程。
if选择语句
if单分支选择语句
if(条件表达式){
一条或多条语句;
}
后续语句;
或者
//if或者else后如果只有一条语句可以省略大括号
if(条件表达式) 一条语句;
后续语句;
if语句执行的过程如下:
- 对if后面括号里的条件表达式进行判断;
- 如果条件表达式的值为true,就执行表达式后面的语句或后面大括号里的多条语句;
- 如果条件表达式的值为false,则跳过if语句,执行后续语句
If else双分支选择结构
if(条件表达式){
语句块1;
}else{
语句块 2;
}
if-else语句执行的过程如下:
- 对if后面括号里的条件表达式进行判断;
- 如果条件表达式的值true,就执行语句块1;
- 如果条件表达式的值为false,就执行语句块2
if-else-if多分支选择语句
if(条件表达式1){
语句块1;
}else if(条件表达式2){
语句块1;
}
. . .
else(条件表达式n){
语句块n;
}
if-else-if语句执行的过程如下:
- 对if后面括号里的条件表达式进行判断;
- 如果条件表达式的值为true,就执行语句块1;
- 否则,对条件表达式2进行判断。如果条件表达式的值为true,就执行语句块2
- 否则,以此类推;
- 如果所有条件表达式的值都为false,最后执行语句块n。
switch语句
当选择结构的分支越多时,if-else-if语句就会变得越来越难懂。Java提供了另一种多分支语句——switch语句。switch语句是多分支的开关语句。
switch(表达式){
case常量表达式1:语句组1;
break;
case常量表达式1:语句组1;
break;
…
case常量表达式1:语句组1;
break;
default:语句块n
}
switch语句执行的过程如下:
- 将switch表达式的值与各个case后面的常量表达式的值一一进行比较;
- 当表达式的值与某个case分支的值相等时,程序执行从case分支开始的语句组;
- 如果没有任何一个case分支的值与switch表达式的值相匹配,并且switch语句含有default分支语句,则程序执行default分支中的语句组;
- 直到遇到break语句或右大括号,结束switch语句。
总结
从功能上来讲,if语句和switch语句都是多分支选择语句,在通常情况下,对于多分支选择结构,使用if语句和使用switch语句从作用上讲是相同的。但是在实际编写程序时,一般遵循下面的使用原则。
- 如果分支的层次不超过三层,那么通常使用if-else-if语句;否则,使用switch语句。
- 如果条件判断语句是对一个变量是否属于一个范围进行判断,如“a>60 && a<89”,这时要使用if-else-if语句。
- 如果是对同一个变量的不同值做条件判断,既可以使用if-else-if语句,也可以使用switch语句。但建议优先使用switch语句,其执行效率相对高一些。