Java流程控制基本语句无非就三种:顺序,判断和循环。判断即选择,循环重结束。判断语句常见的有两种:一种是以if为首的区间判断语句,而另一种是以switch为主的断点判断语句。顾名思义,一个负责范围输出,一个负责精准打击。
if有三种基本形态:if单分支选择结构,if-else双分支选择结构和if-else if-else多分支选择结构。其中if-else if-else多分支选择结构,条件满足其一,不再向下判断,跳过判断整体,继续执行。好处:节省时间,效率更高。
嵌套if选择结构:大条件套小条件。例:百米赛跑,男生及格进男子组,女生及格进女子组。(代码请参考上篇文章)
switch多值选择结: //被[ ]括起来的语句可有可无
swith(表达式){
case 值1:
命令语句;
[break];
case值2:
命令语句;
[default:
默认执行语句;] //如果代码执行过程中没碰上像什么break,return的命令就//默认执行
}
public class blogs {
public static void main(String[] args) {
char a ='a';
switch(a){
case 'a':
System.out.println("It is a");
default:
System.out.println("Over");
}
}
}
执行结果为:
It is a
Over
PS:能用switch语句解决的就能用if语句解决,反之不一定。( if(a.equals(b))为 有内容的a的内容和b的内容比较)
Switch语句中命令一样的case关键字可以像这样摞起来。
public class blogs {
public static void main(String[] args) {
char a ='a';
switch(a){
case 'a':
case'b':
case'c':
case'd':
System.out.println("It is "+a);
default:
System.out.println("Over");
}
}
}
几点注意事项:
- switch语句会根据表达式的值从匹配的执行,一直执行到break标签处或者是switch语句的末尾。与任一case 值不匹配,则进入default语句(如果有的话)
- 只能处理等值条件判断的情况,且表达式必须为byte,short,int或char类型,不能是String或double,float. 1.7之后可以使用String
- 常量值必须是与表达式类型兼容的特定的一个常量
- 不允许有重复的case值
- Default语句为可选语句(可有可无)
比较switch和多重if选择结构
相同点:都是用来处理多分支的结构
不同点:
Switch选择结构只能处理等值条件判断的情况,而且条件必须是整形变量或字符型变量或者字符串(jdk1.7之后)
多重if选择结构没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况