3.switch语句
3.1switch语句格式
格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体1;
break;
…
default:
语句体n+1;
break;
}
格式说明:
- 表达式:取值为byte、short、int、char、JDK5以后的可以是枚举,JDK7以后的可以是String;
- case:后面跟的是要和表达式进行比较的值;
- break:表示中断、结束的意思,用来结束switch语句;
- default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似
执行流程:
- 首先计算表达式的值;
- 依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束;
- 如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束
/*
switch语句
*/
import java.util.Scanner;
public class SwitchDemo{
public static void main(String[] args){
System.out.println("开始");
//键盘录入一个星期数(1,2,...,7),输出对应的星期一,星期二,...星期日
Scanner sc = new Scanner(System.in);
int week = sc.nextInt();
switch(week){
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 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("您输入的星期数有误");
break;
}
}
}
执行结果如下:
switch语句执行流程:
案例
-
需求:一年共有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,使用程序判断该月份属于哪个季节,并输出
-
分析:键盘录入月份数据,使用变量接收
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
多情况判断,使用switch语句实现
switch(month){
case x:
case x:
case x:
default:
}
在每种情况中,完成输出对应的季节
case 3:
System.out.println(“春季”);
case 6:
System.out.println(“夏季”);
case 9:
System.out.println(“秋季”);
case 12:
System.out.println(“冬季”);
/* 需求:一年共有12个月,分属于春夏秋冬4个季节,键盘录入一个月份, 使用程序判断该月份属于哪个季节,并输出 春:3、4、5 夏:6、7、8 秋:9、10、11 东:1、2、12 */ import java.util.Scanner; public class SwitchTest{ public static void main(String[] args){ //键盘录入月份数据,使用变量接收 Scanner sc = new Scanner(System.in); System.out.println("请输入一个月份:"); int month = sc.nextInt(); //多情况判断,使用switch语句实现 //在每种情况中,完成输出对应的季节 //case穿透 switch(month){ case 1: case 2: case 12: System.out.println("冬季"); break; case 3: case 4: case 5: System.out.println("春季"); break; case 6: case 7: case 8: System.out.println("夏季"); break; case 9: case 10: case 11: System.out.println("春季"); break; default: System.out.println("您输入的月份有误"); } } }
- note: 在switch语句中,如果case控制语句体后面不写break,将出现穿透现象,在不判断下一个case值的情况下,向下运行,直到遇到break,或者整体switch语句结束