Java:switch多选择结构、反编译

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

 

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

 

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

byte、short、int或者char

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

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

 

语法:

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

 

代码演示:

 1 package com.jiemyx.struct;
 2 
 3 public class SwitchDemo01 {
 4     public static void main(String[] args) {
 5         char grade = 'C';
 6 
 7         switch (grade){
 8             case 'A':
 9                 System.out.println("优秀");
10                 break;  //可选,最好写上
11             case 'B':
12                 System.out.println("良");
13                 break;  //可选
14             case 'C':
15                 System.out.println("及格");
16                 break;  //可选
17             case 'D':
18                 System.out.println("再接再厉");
19                 break;  //可选
20             case 'E':
21                 System.out.println("挂科");
22                 break;  //可选
23             default:    //可选
24                 System.out.println("未知等级");
25         }
26     }
27 }

 

 1 package com.jiemyx.struct;
 2 
 3 public class SwitchDemo02 {
 4     public static void main(String[] args) {
 5         String name = "小明";
 6 
 7         //JDK7的新特性,表达式结果可以是字符串!!!
 8         //字符串的本质还是数字
 9 
10         //反编译   java文件-->class(字节码文件)-->反编译成java文件(使用IDEA)
11 
12         switch (name){
13             case "小明":
14                 System.out.println("小明");
15                 break;
16             case "小红":
17                 System.out.println("小红");
18                 break;
19             case "李明":
20                 System.out.println("李明");
21                 break;
22             default:
23                 System.out.println("某某");
24         }
25     }
26 }

 

反编译

演示:反编译SwitchDemo02.class文件

1、 选择java文件,点击右上角的图标,找到class文件位置

 

 

 

 

 

 

2、找到SwitchDemo02.java文件存放目录

右击Java文件,根据下图步骤找到存放目录

 

 

 

 

3、 把class文件复制到存放java文件的目录下

 

 

4、 回到IDEA软件,会看到class文件,双击打开,接受协议

 

 

5、得到class文件反编译后的Java文件

 1 //
 2 // Source code recreated from a .class file by IntelliJ IDEA
 3 // (powered by FernFlower decompiler)
 4 //
 5 
 6 package com.jiemyx.struct;
 7 
 8 public class SwitchDemo02 {
 9     public SwitchDemo02() {
10     }
11 
12     public static void main(String[] args) {
13         String name = "小明";
14         byte var3 = -1;
15         switch(name.hashCode()) {
16         case 756703:
17             if (name.equals("小明")) {
18                 var3 = 0;
19             }
20             break;
21         case 762995:
22             if (name.equals("小红")) {
23                 var3 = 1;
24             }
25             break;
26         case 845952:
27             if (name.equals("李明")) {
28                 var3 = 2;
29             }
30         }
31 
32         switch(var3) {
33         case 0:
34             System.out.println("小明");
35             break;
36         case 1:
37             System.out.println("小红");
38             break;
39         case 2:
40             System.out.println("李明");
41             break;
42         default:
43             System.out.println("某某");
44         }
45 
46     }
47 }

 

还可以使用IDEA软件,添加out目录,来查看class文件

posted @ 2021-03-26 19:47  杰myx  阅读(154)  评论(0)    收藏  举报