Re: [問題] 問題

看板java作者 (foolish)時間19年前 (2006/03/29 16:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/5 (看更多)
==站內信件== ※ 引述《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? : 請各位高手幫我解釋一下 進版畫面的一小段.... <%

以下為 qrtt1 與 PsMonkey 的吶喊.....

不要再問 ++ 的問題啦~~ [吼~~~]
%> -- 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)
文章代碼(AID): #14Aa0PxB (java)
討論串 (同標題文章)
文章代碼(AID): #14Aa0PxB (java)