JAVA学习(选择结构2-switch)

switch多选择结构

  • switch case 语句判断一个变量与一系列值中某个值相等,每个值称为一个分支

  • switch 语句中的变量类型可以是:

    • byte、short、int或者char

    • 从java7开始 swtich支持字符串String类型了

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

switch(expression){
    case value:
        //语句
        break;//可选
    case value:
        //语句
        break;//可选
        //可以有任意数量的case语句
    default://可选
        //语句
}
package com.kuangshen.struct;

public class SwitchDemo01 {
    public static void main(String[] args) {
        //case 穿透
        char grade = 'C';
        switch(grade){
            case 'A':
                System.out.println("优秀");
                break;
            case 'B':
                System.out.println("良好");
            case 'C':
                System.out.println("及格");
            default:
                System.out.println("未知");
        }
    }
}
package com.kuangshen.struct;

public class SwithDemo02 {
    //jdk7新特性,表达式结果可以是字符串
   //字符的本质还是数字
   //反编译   java --class(字节码文件)--反编译(IDEA)
    public static void main(String[] args) {
        String name = "狂神";
        switch (name){
            case "11":
                System.out.println("11");
                break;
            case "狂神":
                System.out.println("狂神");
                break;
            default:
                System.out.println("default");
                break;
        }
    }
}
//反编译文件
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.kuangshen.struct;

public class SwithDemo02 {
    public SwithDemo02() {
    }

    public static void main(String[] args) {
        String name = "狂神";
        byte var3 = -1;
        switch(name.hashCode()) {
        case 1568:
            if (name.equals("11")) {
                var3 = 0;
            }
            break;
        case 941788:
            if (name.equals("狂神")) {
                var3 = 1;
            }
        }

        switch(var3) {
        case 0:
            System.out.println("11");
            break;
        case 1:
            System.out.println("狂神");
            break;
        default:
            System.out.println("default");
        }
    }
}
原文地址:https://www.cnblogs.com/cjybarcode/p/13081858.html