JAVA中选择结构if和switch详解
java有顺序结构,分支结构和循环结构,而分支结构有if和switch两种。当我们需要根据条件进行选择或者判断的时候一般就会使用。
if
我们之前使用的条件运算符便是简化版的if语句。
if适合区间判断和定值判断。
if有三种写法,下面一一介绍
单分支
if(布尔类型){
要执行的语句
}
//小括号里的boolean类型若为真则执行大括号里的语句
if(1<2){
System.out.println("1小于2");
}
双分支
if(){
}else{
}
//小括号里的boolean类型若为真则执行大括号里的语句,否则执行else大括号里的语句
if(1<2){
System.out.println("1小于2");
}else{
System.out.println("2<1");
}
多分支
if(){
}else if{
}else{
}
//小括号里的boolean类型若为真则执行大括号里的语句,假则执行else if大括号里的语句,最后没了再由else里的语句当接盘侠执行
if(1<2){
System.out.println("1小于2");
}else if{
System.out.println("2<1");
}else{
System.out.println("2=1");
}
switch
switch只可以用作定值判断,不可以用作区间判断。比如上面的谁小于谁这种就是区间判断,不可以用。
执行流程
1.执行()中的表达式,拿结果值|变量的值,
2.与case后面定值进行判断是否相等,如果存在多个case从上到下依 次判断
3.如果相等,执行对应的语句体,如果不相等继续往下判断
4.执行完毕语句体值,如果遇到break结束switch语句结果
5.如果以上所有的case都不满足,如果存在default,执行语句体n
switch详解
1.switch语句中()中的内容,表达式的结果类型|变量的类型只能为 : byte,short,int,char,String(jdk1.7),枚举 (jdk1.5)
2.break 终止结束switch语句
如果没有添加break,会发生case穿透
case穿透 : 当找到值相等case,执行对应的语句体,语句体执行完毕,没有遇到break,会继续向下穿透,下面的case不在判断,继续执行语句体,直到遇到下一个break或者switch语句的结束而结束
3.default :
所有的case后面的值与()中结果都不相等时,执行 default后的内容-->相等else
可以定义在switch语句任意位置
一般在最后定义的default后面的break可以省略,但是在其他位置定义default后面break不能省略
代码
//从键盘输入一个1-12的数字,判断是几月
int month = sc.nextInt();
switch (month/3){
case 1:
System.out.println("春季");
break;
case 2:
System.out.println("夏季");
break;
case 3:
System.out.println("秋季");
break;
case 4:
System.out.println("冬季");
break;
case 0:
System.out.println("冬季");
default:
System.out.println("错啦");
}