public class MyTest
{
public static void main(String args[]){
int x = 0;
int y = 0; for(int z = 0; z < 5; z++){
if((++x > 2)&&(++y > 2)){
x++;
}
}
System.out.println(x + " " + y);
}}
问最后打印出的结果。
呵呵,虽然有点搞,但还答对了

解决方案 »

  1.   

    z = 0时: x = 1 , y = 0
    z = 1时: x = 2 , y = 0
    z = 2时: x = 3 , y = 1
    z = 3时: x = 4 , y = 2
    z = 4时: x = 5 + 1 , y = 3
      

  2.   

    菜鸟提问:能告诉我为什么吗???
    ////////////////////////////////////////////
    菜鸟告诉你,z是先判断后加,而x,y是先加后判断,但是&&这个东西又让人很无奈,当他发现她前面的条件是个false的时候,他就不做下面的判断了,所以y捞不着加了。这样一直当++x>2满足了,他才站出来判断,结果他又得跟着x同时+,刚刚满足了条件,z就到了4了。所以if里面只进行了一次,却比y多了3
      

  3.   

    luyang1016(闭月羞花猫) ( ) 信誉:100    Blog  2007-1-25 18:13:07  得分: 0  
     
     
       
    z = 0时: x = 1 , y = 0
    z = 1时: x = 2 , y = 0
    z = 2时: x = 3 , y = 1
    z = 3时: x = 4 , y = 2
    z = 4时: x = 5 + 1 , y = 3
    ///////////////////////////////////////////////////
    可以参照他的结果。很明了了  
     
      

  4.   

    the short-circuit &&
      

  5.   

    此题主要考++i和i++,还有&&和||,这两个符号表示简洁与、简洁或。了解了他们的用法,就不难理解问题的答案了。
      

  6.   

    考得好,真正靠基本功.
    如下:
    -----------------------------------------------------------------------
    a&&b 
    当为a真的时候才判断b的值,当a为假的时候整个表达式为假,不判断b的价值.
    -----------------------------------------------------------------------
      

  7.   

    X++是先用后加,++是先加后用.
    &&与运算中,碰到假就停止,后面的表达式不再作运算刚学的时候也搞了很久,不过试几次就知道咋回事了
    :)