1、通过比较值是否相等,来决定执行哪条分支。
根据男女性别不同,推荐不同的书给其观看
public class SwitchDemo3 {
public static void main(String[] args) {
// 目标:搞清楚switch分支结构的应用和写法,理解其执行流程。
test1();
}
// 需求:根据男女性别的不同,推荐不同的书本信息给其观看。
public static void test1() {
// 1、让用户输入选择自己的性别。
System.out.println("请输入您的性别:");
Scanner sc = new Scanner(System.in);
String sex = sc.next(); // "男" "女" "其他的"
// 2、根据用户输入的性别这个值,判断该做什么
switch (sex) {
case "男":
System.out.println("推荐《Java从入门到精通》");
break;
case "女":
System.out.println("推荐《从您的全世界路过》");
break;
default:
System.out.println("你不是人,没有东西推荐!");
}
}
}
2、表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持string、不支持double、float、long。
public static void test1() {
// double a = 0.1 + 0.2;
// switch (a) {
// case 0.3:
// System.out.println("10.5");
// break;
// case 10.8:
// System.out.println("10");
// break;
// default:
// System.out.println("default");
// }
}
3、case给出的值不允许重复,且只能是字面量,不能是变量。
public static void test2() {
int a = 10;
int b = 15;
switch (a) {
case 10:
System.out.println("10");
break;
case 15:
System.out.println("10");
break;
default:
System.out.println("default");
}
}
4、正常使用switch的时候,忘记写break,会出现穿透现象(穿透现象的应用)。
public static void test3() {
String week = "周六";
switch (week) {
case "周一":
System.out.println("埋头苦干,解决bug");
break;
case "周二":
case "周三":
case "周四":
System.out.println("请求大牛程序员帮忙");
break;
case "周五":
System.out.println("自己整理代码");
break;
case "周六":
case "周日":
System.out.println("打游戏");
break;
default:
System.out.println("星期信息有误!");
}
}