Java day09

switch多选择结构:

  多选择结构还有一个实现方式就是switch case语句。

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

  

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

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

    byte、short、int或者char。

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

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

        switch (grade){
            case 'A':
                System.out.println("优秀");
                break; //可选,如果不加break的话跑完这个语句还会接着往下执行,比如输入A,这里有break就会只输出优秀,没有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;
            default:
                System.out.println("未知等级");

        }
    }
}
/*
未知等级
 */

从Java SE 7 开始 switch 支持字符串String 类型了

public class SwitchDemo02 {
    public static void main(String[] args) {
        String name = "vg";
        //JDK7的新特性,表达式结果可以是字符串!!!
        //字符的本质还是数字
        
        //反编译   java---class(字节码文件)---反编译(IDEA)

        switch (name){
            case"vg":
                System.out.println("vg");
                break;
            case"llx":
                System.out.println("llx");
                break;
            default:
                System.out.println("弄啥呢");
        }
    }
}
/*
vg
 */

如何去查看反编译文件呢?

步骤:1.在IDEA里面找到Project Structure(在idea界面的左上角或者右上角。快捷键Ctrl+Alt+Shift+s)

           2.点进Project栏里面有个Project compiler output路径,随便去一个地方打开这个路径。依次打开文件发现里面都是我们在IDEA上写的东西,最后可以看到我们写的class文件

           3.右键打开里面的class文件我们会发现全是乱码,也无法直接ctrl c+ctrl v拷贝进我们的IDEA里,如何查看呢?

      4.我们可以在IDEA里面打开一个class的包(package)的文件夹,我们可以看到IDEA里面的class,直接从上一个打开的文件夹里拷贝到这个文件夹里,从文件夹的层面上拷贝过来我们就可以看到反编译之后的文件(通过IDEA实现的反编译)。以下是案例,对比上方的SwitchDemo02

 

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.llx.struct;

public class SwitchDemo02 {
    public SwitchDemo02() {
    }

    public static void main(String[] args) {
        String name = "vg";
        byte var3 = -1;
        switch(name.hashCode()) {
        case 3761:
            if (name.equals("vg")) {
                var3 = 0;
            }
            break;
        case 107256:
            if (name.equals("llx")) {
                var3 = 1;
            }
        }

        switch(var3) {
        case 0:
            System.out.println("vg");
            break;
        case 1:
            System.out.println("llx");
            break;
        default:
            System.out.println("弄啥呢");
        }

    }
}

 

看源码一个很重要的思想!!!

 

posted @ 2020-12-05 00:39  爱java的luluxiu  阅读(72)  评论(0)    收藏  举报