一、switch语法
switch(表达式){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
...
case 常量n:
语句n;
break;
default:
语句m;
break;
}
注意:
1.jdk1.7后,表达式中可以为,byte,short,int,char,枚举,String类型表达式
2.case用于匹配表达式;break用于结束当前switch;default是可选的,当没有case匹配时执行default
3.当没有break时,发生穿透现象,即执行完当前case后,继续往后执行
4.常量不能相同
二、switch嵌套
switch(表达式){
case 常量1:{
switch(表达式){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
...
case 常量n:
语句n;
break;
default:
语句m;
break;
}
}
break;
default:
语句m;
break;
}
三、例子
1.正常使用
package com.bdqn.选择结构;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("请输入排名:");
int ranking = sc.nextInt();
//
switch (ranking) {
default:
System.out.println("很遗憾你的排名没有奖品!");
break;
case 1:
System.out.println("您的奖品是豪华笔记本一台!");
break;
case 2:
System.out.println("您的奖品是豪华自行车一辆!");
break;
case 3:
System.out.println("您的奖品是豪华蓝牙耳机一套!");
break;
}
sc.close();
}
}
结果:
请输入排名:
3
您的奖品是豪华蓝牙耳机一套!
2.穿透法
package com.bdqn.选择结构;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份:");
int month = sc.nextInt();
//
switch(month){
case 3:
case 4:
case 5:
System.out.println(month + "月份"+ "是春天");
break;
case 6:
case 7:
case 8:
System.out.println(month + "月份"+ "是夏天");
break;
case 9:
case 10:
case 11:
System.out.println(month + "月份"+ "是秋天");
break;
case 12:
case 1:
case 2:
System.out.println(month + "月份"+ "是冬天");
break;
}
}
}
结果:
请输入一个月份:
4
4月份是春天