java-switch多选择结构

switch 多选择结构

多选择结构还有一个实现方式就是 switch case 语句
    switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支

    switch 语句中的变量类型可以是:
        byte、short、int 或者 char。
       从 java SE7 开始,switch 支持字符串 String 类型了
       同时 case 标签必须为字符串常量或字面量
语法
switch(expression){
    case value:
        //语句
        break;//可选
    case value:
        //语句
        break;//可选
    //你可以有任意数量的case语句
    default:  //可选
        //语句
 }
实例
public class Switch01 {
    public static void main(String[] args) {
        //case 穿透 , switch 匹配一个具体的值
        char grade = 'C';  //这里的值会判断是否与下列的某个值相等

        switch(grade){
            case 'A':
                System.out.println("优秀");
                break; //可选。作用是执行到该语句就会终止,不再往下执行
            case 'B':
                System.out.println("良好");
                break;
            case 'C':
                System.out.println("及格");
            case 'D':
                System.out.println("再接再厉");
            case 'E':
                System.out.println("挂科");
            default:
                System.out.println("未知等级");

        }
    }
}

switch_String类型
public class Switch_String {
    public static void main(String[] args) {

        //JDK 的新特性,表达式结果可以是字符串!
        //字符的本质还是数字

        //反编译 :
        /*本来是 java 文件,编译之后变为 class 文件。
            class 叫做字节码文件。字节码看不懂,所以需要反编译为 java 程序,
            反编译的工具很多,我们用的是 IDEA 可以实现反编译
         */

        String name = "小麦";

        switch (name){
            case "小红":
                System.out.println("小红");
                break;
            case "小白":
                System.out.println("小白");
                break;
            case "小麦":
                System.out.println("小麦");
                break;
            default:
                System.out.println("没有这个名字");
        }
    }
}

反编译后的 class 文件
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.mai.stuct;

public class Switch_String {
    public switch_String() {
    }

    public static void main(String[] args) {
        String name = "小麦";
        byte var3 = -1;
        switch(name.hashCode()) {
        case 760910:
            if (name.equals("小白")) {
                var3 = 1;
            }
            break;
        case 762995:
            if (name.equals("小红")) {
                var3 = 0;
            }
            break;
        case 771191:
            if (name.equals("小麦")) {
                var3 = 2;
            }
        }

        switch(var3) {
        case 0:
            System.out.println("小红");
            break;
        case 1:
            System.out.println("小白");
            break;
        case 2:
            System.out.println("小麦");
            break;
        default:
            System.out.println("没有这个名字");
        }

    }
}
posted @ 2021-08-26 11:16  欢麦芽  阅读(54)  评论(0)    收藏  举报