请教高手,这个for循环的结果是什么,怎么得的?我知道结果,就是不明白原理,请高手不吝赐教! int i = 0;
for (i++; i++ < 10; i++) ;
System.out.println(++i);

解决方案 »

  1.   

    没什么意思,就是 考一些基础的东西
    int i=0;
    System.out.println(i++);
    System.out.println(i);
    System.out.println(++i);
    System.out.println(i);
      

  2.   

    这个结果不对,这题的结果是13,如果sysout(i++)的话,结果就是12,现在我不太明白12是怎么得的
      

  3.   

    i++是先把i传递出来后++;
    ++i是先++后传递数值就是13了。
      

  4.   

    int i = 0;
    for (i++; i++ < 10; i++){
    System.out.println(i);
    }
    System.out.println(++i);改写成这样就好理解了。
    循环体里打印的最后一个数字是10.我相信这之前你都理解。
    可能你的思维有点没转过来。剩下的步骤也很简单。结果是13
    当打印完10的时候会去执行i++,这个时候是11,然后他会去判断i++ < 10这个表达式。
    其结果为false也就是不执行循环体里的代码。但是i已经变成了12.
    接着跳出循环体。打印++i   先加再打印。 也就是13了。
      

  5.   

    i=0;
    for(){
    i=1;1<10,i=2;i=3;
    i=4;4<10,i=5;i=6;
    i=7;7<10,i=8;i=9;
    i=10;10<10,i=11;i=12;到此不再循环;
    }
    到输出:++i就输出13;i++就输出12;道理就是我刚才说的了
      

  6.   

    int i = 0;
    for (i++; i++ < 10; i++) ;相当于for (i++; i++ < 10; i++) {};//执行完后的结果i=12
    System.out.println(++i);
      

  7.   

    LZ大人。
    for循环的执行顺序是这个样子的:
    eg: for(A,B,C)
    A一辈子只会执行一次。
    B每次循环都会执行,若为真则执行循环体。若假则跳出循环。若无循环体就执行C,接着再判断B总的执行顺序就是A,B,循环体,C,B,循环体,C...一直这样下去。直到B的结果为false。
    剩下的就是++i和i++的区别了。前者是先加再执行。后者是先执行再加。
    一步一步再仔细看一遍
      

  8.   

    for (0++; i++ < 10; i++)
    for (i++; 1++ < 10; i++)
    for (i++; i++ < 10; 2++)
    for (i++; 3++ < 10; i++)
    for (i++; i++ < 10; 4++)
    for (i++; 5++ < 10; i++)
    for (i++; i++ < 10; 6++)
    for (i++; 7++ < 10; i++)
    for (i++; i++ < 10; 8++)
    for (i++; 9++ < 10; i++)
    for (i++; i++ < 10; 10++)
    for (i++; 11++ < 10; i++)
    估计你就是这个地方晕了。
    11++ < 10这个表达式的值是false,虽然false了,但是他还得++啊。
    跳出循环的时候就是12了。
    sysout的时候打印的是++i,所以就是13了。LZ这个循环一点都没趣。
      

  9.   

    如果我是面试官,谁要是把 for 循环写成这样,我会立马让其放下笔离开!
      

  10.   

    只需从9开始考虑。9比较之后++=10然后执行之后的i++即11然后再比较i++<10此时i是11比较后为12.最后执行输出++i=13