55: goto 83
58: aload_1
59: ldc #2 // String approval
61: invokevirtual #5 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
64: ifeq 83
67: iconst_1
68: istore_2
69: goto 83
72: aload_1
73: ldc #6 // String finish
75: invokevirtual #5 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
78: ifeq 83
81: iconst_2
82: istore_2
83: iload_2
84: tableswitch { // 0 to 2
0: 112
1: 123
2: 134
default: 145
}
112: getstatic #7 // Field java/lang/System.out:Ljava/io/PrintStream;
115: ldc #8
117: invokevirtual #9 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
120: goto 153
123: getstatic #7 // Field java/lang/System.out:Ljava/io/PrintStream;
126: ldc #10
128: invokevirtual #9 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
131: goto 153
134: getstatic #7 // Field java/lang/System.out:Ljava/io/PrintStream;
137: ldc #11
139: invokevirtual #9 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
142: goto 153
148: ldc #12
150: invokevirtual #9 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
153: return
用if-else串生成的字节码
[java]
public static void second();
de:
0: ldc #2 // String approval
2: astore_0
3: ldc #4 // String shouli
5: aload_0
6: invokevirtual #5 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
9: ifeq 23
12: getstatic #7 // Field java/lang/System.out:Ljava/io/PrintStream;
15: ldc #8
17: invokevirtual #9 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
20: goto 71
23: ldc #2 // String approval
25: aload_0
26: invokevirtual #5 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
29: ifeq 43
32: getstatic #7 // Field java/lang/System.out:Ljava/io/PrintStream;
35: ldc #10
37: invokevirtual #9 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
40: goto 71
43: ldc #6 // String finish
45: aload_0
46: invokevirtual #5 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
49: ifeq 63
52: getstatic #7 // Field java/lang/System.out:Ljava/io/PrintStream;
55: ldc
57: invokevirtual #9 // Method java/io/PrintStream.prin