[問題] 奇怪的i++敘述...

看板java作者 (分享)時間14年前 (2009/10/24 00:03), 編輯推噓1(105)
留言6則, 5人參與, 最新討論串1/1
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)

10/24 00:19, , 1F
1==2為false &&右邊的東西便不會執行
10/24 00:19, 1F

10/24 00:38, , 2F
短路運算
10/24 00:38, 2F

10/24 02:02, , 3F
你把i++改成++i就可以了
10/24 02:02, 3F

10/24 21:46, , 4F
&&的特色 前面否定後面就忽略 這樣可以增加效能...
10/24 21:46, 4F

10/24 21:49, , 5F
這跟用i++ ++i沒關係... (如果後面的式子一定要執行 用&
10/24 21:49, 5F

10/25 01:33, , 6F
thanks all!!
10/25 01:33, 6F
文章代碼(AID): #1AuTFl4x (java)