1.switch语法格式
switch (表达式) {
case 1:
语句体1;
break;
case 2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程:
1.首先计算出表达式的值
2.和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
2.switch应用实例
一年有12个月,分属于春(3/4/5)夏(6/7/8)秋(9/10/11)冬(1/2/12)4个季节,键盘录入一个月份,用程序实现判断该月份属于哪个季节并输出
public class Demo1 {
public static void main(String[] args) {
//键盘录入月份数据,使用变量接收
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份:");
int month = sc.nextInt();
//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("你输入的月份有误");
}
}
}
输入诗词上半句,输出诗词下半句:
public class SwitchPractice2 {
public static void main(String[] args) {
System.out.println("请输入诗词的前半句:");
Scanner input = new Scanner(System.in);
String firstHalfOfSentence = input.next();
//case穿透
switch(firstHalfOfSentence) {
case "采菊东篱下": System.out.println("悠然见南山");
break;
case "问君能有几多愁": System.out.println("恰似一江春水向东流");
break;
case "君不见高堂明镜悲白发": System.out.println("朝如青丝暮成雪");
break;
case "古道西风瘦马": System.out.println("夕阳西下,断肠人在天涯");
break;
default:
System.out.println("小包子查询不到下一句哦");
}
}
}
绿字是键盘输入,白字是输出。
如果switch中得case,没有对应break的话,则会出现case穿透的现象。示例:
public static void main(String[] args) {
System.out.println("请输入诗词的前半句:");
Scanner input = new Scanner(System.in);
String firstHalfOfSentence = input.next();
switch(firstHalfOfSentence) {
case "采菊东篱下": System.out.println("悠然见南山");
break;
case "问君能有几多愁": System.out.println("恰似一江春水向东流");
break;
case "君不见高堂明镜悲白发": System.out.println("朝如青丝暮成雪");
//去掉了break
case "古道西风瘦马": System.out.println("夕阳西下,断肠人在天涯");
break;
default:
System.out.println("小包子查询不到下一句哦");
}
}
发生了case穿透:下面的case也自动执行了。