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要进行减一操作。