1 int i = 5; 2 int j = 10; 3 int k = 15; 4 //6,15 5 if((i++<j) || (k-->j)){ 6 System.out.println("value of i :"+i+" value of k :"+k); 7 } 8 9 //7,14 10 if((i++<j) | (k-->j)){ 11 System.out.println("value of i :"+i+" value of k :"+k); 12 } 13
如上述代碼,
| :當兩邊操作數的位有一邊為1時,結果為1,否則為0。如1100|1010=1110
||:邏輯或的關系
5行中,當第一個條件為真時,則不需要執行第二個條件的判斷。所以k不需要減一。
10行中,兩個條件均需要進行判斷,無論第一個條件是否為真,都要進行條件二的判斷。所以k要進行減一操作。