Day22 Switch多选择结构

发布时间 2023-12-07 21:02:39作者: 白小帆

Switch多选择结构

  • 多选择的除了if结构外 的另一个实现方式:Switch case语句(判断一个变量与一系列值中某个值是否相等,每个值称为一个分支)

  • Switch语句中的变量可以是:byte, short, int 或者 char

Java SE7开始 Switch开始 支持字符串String类型了

同时case标签必须为字符串常量或字面量

1.不加break的结果

package com.baixiaofan.struct;

public class SwitchDemo01 {
    public static void main(String[] args) {
        //case 穿透  //switch 匹配一个具体的值
        char grade = 'C';

        switch (grade){
            case 'A'://case相当于一个个选项(值),switch在下列这么多选项中去匹配,匹配到了就输出
            System.out.println("优秀");
            break;//可选    注意:break不是必须要加在语句中的,case相当于阻止case的穿透,(养成规范
                                                                      //每写完一个case 就加上break)
            case 'B':
                System.out.println("良好");
            case 'C':
                System.out.println("及格");//注意这里没有break,case会一直穿透连带输出后面的结果!!!!!!
            case 'D':
                System.out.println("再接再励");
            case 'E':
                System.out.println("挂科");
                break;
            default:
                System.out.println("未知等级");

        }

    }

结果为:(不加break,case的穿透效果 会连带输出后面的结果)

2.加上break的结果

package com.baixiaofan.struct;

public class SwitchDemo02 {
    public static void main(String[] args) {
        char grade = 'h';

        switch (grade){
            case 'a':
                System.out.println("王者");
                break;//(养成规范 每写完一个case 就加上break)
            case 'b':
                System.out.println("星耀");
                break;
            case 'c':
                System.out.println("钻石");
                break;
            case 'd':
                System.out.println("铂金");
                break;
            case 'e':
                System.out.println("黄金");
                break;
            case 'f':
                System.out.println("白银");
                break;
            default:
                System.out.println("青铜");
                break;//可选
        }
    }
}

结果:就是 char grade = 'x'; x改a就输出王者,改成b就输出星耀。。。。 x改其他a,b,c,d,e,f以外的其他字符 则输出青铜

​ 由于语句都加了break,完全不用担心case的穿透作用

​ 所以要养成习惯每个switch语句都加上break

String类型

package com.baixiaofan.struct;

public class SwitchDemo03 {
    public static void main(String[] args) {
        String name = "小哥";
        
        
        
        switch (name){
            case "小哥哥":
                System.out.println("小哥哥");
                break;
            case "帅哥":
                System.out.println("帅哥");
                break;
            case "甩锅":
                System.out.println("甩锅");
                break;
            default:
                System.out.println("弄啥嘞");
        }
    }
}