for(a=0;a<10;a++)
  i++; i=i++是不正确的

解决方案 »

  1.   

    你的意思是说java不支持i++吗?
      

  2.   

    因为i++是先使用i的值0,接着再加1,虽然加1了,但是0又给了i,所以始终是0
      

  3.   

    实际为(i=i)++
    (i=i)值为1,不过i的值不变,还是0
      

  4.   

    try to understand the difference between i++ and ++i.
      

  5.   

    i=i++;
    实际上是大概这样子
    1.虚拟机先保存了i的值到临时存储空间
    2.然后执行i++操作,结果i的值增加了1
    3.虚拟机再将临时存储空间的值赋给i结果就是i的值没有改变
    实际上i=i++在不同的C/C++编译器中都会存在类似问题。因为没有统一的逻辑声明这个语句怎么解释。直接i++;就可以完成功能了,为什么还要就上i=呢
      

  6.   

    对,i=i++一开始i=0,0赋给i,i再++,但原先左面i还是=0,i=0,i再++,还是0,循环很多次都是零,我想你这样例子其实只是:for(){
    i++;   //而不是i=i++
    }===================================
             情人节快乐
            有情人终成眷属
       我的一分耕耘,你能给一分收获
      

  7.   

    大家说的有道理,但是我真的觉得似乎java中不支持i++,没有地方能用他
      

  8.   

    画蛇添足:i = i++;
    多此一举:i = ++i;
      

  9.   

    不同的编译实现会有不同的结果,同样的代码你放到Tubro C,VC,java里面去编译,出来的结果都可能不一样。所以写代码最好避免这种不确定因素。
      

  10.   

    这个问题比较简单,不过是C语言上对i++和++i的理解问题