Re: [問題] 問題
==站內信件==
※ 引述《genius0729 (綠豆)》之銘言:
: public class q1 {
: public static void main (String[] argv) {
: boolean b;
: int i=3;
: b=((i++)<4 & (++i)>4 ||(i++)>5);
: System.out.println("運算後i:"+i);
: }}
: 請問各位高手
: 為什麼這提的答案
: b值是true
: 但是我ㄧ直不知道位什麼 i 等於5?
: 請各位高手幫我解釋一下
進版畫面的一小段....
<%
推
,
推
,
%>
--
Compiled from "q1.java"
public class q1 extends java.lang.Object
SourceFile: "q1.java"
minor version: 0
major version: 0
Constant pool:
const #1 = Method #11.#20; // java/lang/Object."<init>":()V
const #2 = Field #21.#22; //
java/lang/System.out:Ljava/io/PrintStream;
const #3 = class #23; // StringBuffer
const #4 = Method #3.#20; // java/lang/StringBuffer."<init>":()V
const #5 = String #24; // 運算後i:
const #6 = Method #3.#25; //
java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
const #7 = Method #3.#26; //
java/lang/StringBuffer.append:(I)Ljava/lang/StringBuffer;
const #8 = Method #3.#27; //
java/lang/StringBuffer.toString:()Ljava/lang/String;
const #9 = Method #28.#29; //
java/io/PrintStream.println:(Ljava/lang/String;)V
const #10 = class #30; // q1
const #11 = class #31; // Object
const #12 = Asciz <init>;
const #13 = Asciz ()V;
const #14 = Asciz Code;
const #15 = Asciz LineNumberTable;
const #16 = Asciz main;
const #17 = Asciz ([Ljava/lang/String;)V;
const #18 = Asciz SourceFile;
const #19 = Asciz q1.java;
const #20 = NameAndType #12:#13;// "<init>":()V
const #21 = class #32; // System
const #22 = NameAndType #33:#34;// out:Ljava/io/PrintStream;
const #23 = Asciz java/lang/StringBuffer;
const #24 = Asciz 運算後i:;
const #25 = NameAndType #35:#36;//
append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
const #26 = NameAndType #35:#37;// append:(I)Ljava/lang/StringBuffer;
const #27 = NameAndType #38:#39;// toString:()Ljava/lang/String;
const #28 = class #40; // PrintStream
const #29 = NameAndType #41:#42;// println:(Ljava/lang/String;)V
const #30 = Asciz q1;
const #31 = Asciz java/lang/Object;
const #32 = Asciz java/lang/System;
const #33 = Asciz out;
const #34 = Asciz Ljava/io/PrintStream;;
const #35 = Asciz append;
const #36 = Asciz (Ljava/lang/String;)Ljava/lang/StringBuffer;;
const #37 = Asciz (I)Ljava/lang/StringBuffer;;
const #38 = Asciz toString;
const #39 = Asciz ()Ljava/lang/String;;
const #40 = Asciz java/io/PrintStream;
const #41 = Asciz println;
const #42 = Asciz (Ljava/lang/String;)V;
{
public q1();
Code:
Stack=1, Locals=1, Args_size=1
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
LineNumberTable:
line 1: 0
public static void main(java.lang.String[]);
Code:
Stack=3, Locals=3, Args_size=1
0: iconst_3
1: istore_2
2: iload_2
LineNumberTable:
line 1: 0
public static void main(java.lang.String[]);
Code:
Stack=3, Locals=3, Args_size=1
0: iconst_3
1: istore_2
2: iload_2
3: iinc 2, 1
6: iconst_4
7: if_icmpge 14
10: iconst_1
11: goto 15
14: iconst_0
15: iinc 2, 1
18: iload_2
19: iconst_4
20: if_icmple 27
23: iconst_1
24: goto 28
27: iconst_0
28: iand
29: ifne 40
32: iload_2
33: iinc 2, 1
36: iconst_5
37: if_icmple 44
40: iconst_1
41: goto 45
44: iconst_0
45: istore_1
46: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
49: new #3; //class StringBuffer
52: dup
53: invokespecial #4; //Method java/lang/StringBuffer."<init>":()V
56: ldc #5; //String 運算後i:
58: invokevirtual #6; //Method
java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
61: iload_2
62: invokevirtual #7; //Method
java/lang/StringBuffer.append:(I)Ljava/lang/StringBuffer;
65: invokevirtual #8; //Method
java/lang/StringBuffer.toString:()Ljava/lang/String;
68: invokevirtual #9; //Method
java/io/PrintStream.println:(Ljava/lang/String;)V
71: return
LineNumberTable:
line 4: 0
line 5: 2
line 6: 46
line 7: 71
104,1 95%
0: iconst_3
1: istore_2
2: iload_2
3: iinc 2, 1
6: iconst_4
7: if_icmpge 14
10: iconst_1
11: goto 15
14: iconst_0
15: iinc 2, 1
18: iload_2
19: iconst_4
20: if_icmple 27
23: iconst_1
24: goto 28
27: iconst_0
28: iand
29: ifne 40
32: iload_2
33: iinc 2, 1
36: iconst_5
37: if_icmple 44
40: iconst_1
41: goto 45
44: iconst_0
45: istore_1
46: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
49: new #3; //class StringBuffer
52: dup
53: invokespecial #4; //Method java/lang/StringBuffer."<init>":()V
56: ldc #5; //String 運算後i:
58: invokevirtual #6; //Method
java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
61: iload_2
62: invokevirtual #7; //Method
java/lang/StringBuffer.append:(I)Ljava/lang/StringBuffer;
65: invokevirtual #8; //Method
java/lang/StringBuffer.toString:()Ljava/lang/String;
68: invokevirtual #9; //Method
java/io/PrintStream.println:(Ljava/lang/String;)V
71: return
LineNumberTable:
line 4: 0
line 5: 2
line 6: 46
line 7: 71
104,4 95%
Compiled from "q1.java"
public class q1 extends java.lang.Object
SourceFile: "q1.java"
minor version: 0
major version: 0
Constant pool:
const #1 = Method #11.#20; // java/lang/Object."<init>":()V
const #2 = Field #21.#22; //
java/lang/System.out:Ljava/io/PrintStream;
const #3 = class #23; // StringBuffer
const #4 = Method #3.#20; // java/lang/StringBuffer."<init>":()V
const #5 = String #24; // 運算後i:
const #6 = Method #3.#25; //
java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
const #7 = Method #3.#26; //
java/lang/StringBuffer.append:(I)Ljava/lang/StringBuffer;
const #8 = Method #3.#27; //
java/lang/StringBuffer.toString:()Ljava/lang/String;
const #9 = Method #28.#29; //
java/io/PrintStream.println:(Ljava/lang/String;)V
const #10 = class #30; // q1
const #11 = class #31; // Object
const #12 = Asciz <init>;
const #13 = Asciz ()V;
const #14 = Asciz Code;
const #15 = Asciz LineNumberTable;
const #16 = Asciz main;
const #17 = Asciz ([Ljava/lang/String;)V;
const #18 = Asciz SourceFile;
const #19 = Asciz q1.java;
const #20 = NameAndType #12:#13;// "<init>":()V
const #21 = class #32; // System
const #22 = NameAndType #33:#34;// out:Ljava/io/PrintStream;
const #23 = Asciz java/lang/StringBuffer;
const #24 = Asciz 運算後i:;
const #25 = NameAndType #35:#36;//
append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
const #26 = NameAndType #35:#37;// append:(I)Ljava/lang/StringBuffer;
const #27 = NameAndType #38:#39;// toString:()Ljava/lang/String;
const #28 = class #40; // PrintStream
const #29 = NameAndType #41:#42;// println:(Ljava/lang/String;)V
const #30 = Asciz q1;
const #31 = Asciz java/lang/Object;
const #32 = Asciz java/lang/System;
const #33 = Asciz out;
const #34 = Asciz Ljava/io/PrintStream;;
const #35 = Asciz append;
const #36 = Asciz (Ljava/lang/String;)Ljava/lang/StringBuffer;;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.26.34.20
※ 編輯: qrtt1 來自: 163.26.34.214 (03/30 12:21)
討論串 (同標題文章)
完整討論串 (本文為第 2 之 5 篇):
1
1
java 近期熱門文章
PTT數位生活區 即時熱門文章