看板 java 關於我們 聯絡資訊
hi,all 我遇到一個不知所以然的i++敘述 code如下 boolean j; int i=2; if(i++>0) System.out.println("i++>0"); System.out.println("The i is "+i); j= 1==2 && i++>0; System.out.println("The j is "+j); System.out.println("The i is "+i); 執行完後的結果,在i的值那部份都是印出 The i is 3 我就覺得很奇怪,遇到i++的敘述後不是都要加1嗎?? 為什麼 j= 1==2 && i++>0; 這行執行完後,i的值不會加1呢?? btw,我把這行改成 j= 1==2 || i++>0; 或是 j= 1==2 ^ i++>0; 或 j= 1==1 && i++>0; 後,i的值就會再加1 所以我在想是不是and運算在判斷前面是false時 就會自動去忽略&&後面的敘述 造成不去執行後面的i++ Thanks!! -- 誰說人多就不寂寞...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.106.194 ※ 編輯: ju22 來自: 61.228.106.194 (10/24 00:14)
james732:1==2為false &&右邊的東西便不會執行 10/24 00:19
costbook:短路運算 10/24 00:38
liaosankai:你把i++改成++i就可以了 10/24 02:02
danny8376:&&的特色 前面否定後面就忽略 這樣可以增加效能... 10/24 21:46
danny8376:這跟用i++ ++i沒關係... (如果後面的式子一定要執行 用& 10/24 21:49
ju22:thanks all!! 10/25 01:33