public class Q {
public static void main (String args []) {
int i=1;
int j=i++;
if ((i == (++j) ) & ( (i++) ==j )){

i+=j;

}
System.out.println(i);
}}
 答案是:5
怎么得到的啊。谁给详细解答一下吧?   

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【yuys168】截止到2008-07-29 11:41:37的历史汇总数据(不包括此帖):
    发帖的总数量:34                       发帖的总分数:1886                     每贴平均分数:55                       
    回帖的总数量:34                       得分贴总数量:4                        回帖的得分率:11%                      
    结贴的总数量:34                       结贴的总分数:1886                     
    无满意结贴数:3                        无满意结贴分:168                      
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:8.82  %               无满意结分率:8.91  %                  
    敬礼!
      

  2.   

    int j=i++;//j=1,i=2
    if ((i == (++j) ) & ( (i++) ==j ))//i=3,j=2,3&2为真
    3+2=5
      

  3.   

    en ,& 和&&区别,&&如果前面是false,后面就不用判断了,而&都要执行。
    所以2 + 3 = 5了。
    你可以设置几个打印点,打印下,看看变化。