作者ju22 (分享)
看板java
标题[问题] 奇怪的i++叙述...
时间Sat Oct 24 00:03:53 2009
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)
1F:→ james732:1==2为false &&右边的东西便不会执行 10/24 00:19
2F:推 costbook:短路运算 10/24 00:38
3F:→ liaosankai:你把i++改成++i就可以了 10/24 02:02
4F:→ danny8376:&&的特色 前面否定後面就忽略 这样可以增加效能... 10/24 21:46
5F:→ danny8376:这跟用i++ ++i没关系... (如果後面的式子一定要执行 用& 10/24 21:49
6F:→ ju22:thanks all!! 10/25 01:33