黑马程序员技术交流社区

标题: 自增小题目求助 [打印本页]

作者: 王鹏伟    时间: 2013-2-23 15:30
标题: 自增小题目求助
public class Demo
{
   public static void main(String[] args)
   {
       int x = 0;
       for(int i=0;i<100;i++)
           x = x++;
           System.out.println(x);
   }
}

这段代码怎么个步骤?

作者: 陈圳    时间: 2013-2-23 15:43
本帖最后由 陈圳 于 2013-2-23 16:11 编辑

int x = 0;
       for(int i=0;i<100;i++)//for循环开始
           x = x++;             //x使用完后自增1   如果是++x就是使用前自增1 ,这一步用x++;比较好,因为节省了效率.一步操作.而x=x++会有一个赋值.
           System.out.println(x);  打印一次x
i的值循环一次,x的值就加自增1,相当于for(int i=0;i<100;i++,x++)
作者: 罗海云    时间: 2013-2-23 16:19
  1. public class Demo
  2. {
  3. public static void main(String[] args)
  4. {
  5. int x = 0;
  6. for(int i=0;i<100;i++)<FONT color=red> // for循环开始. I= 0, x = 0</FONT>
  7. x = x++;//<FONT color=red>这儿建议直接用x++;就行, 提高代码简练性,效率.
  8. </FONT>System.out.println(x);//<FONT color=red>输出1-100;</FONT>
  9. }
  10. }

复制代码

作者: 贾文泽    时间: 2013-2-23 16:45
本帖最后由 贾文泽 于 2013-2-23 16:46 编辑

看了楼上两位的解释都有点问题,我明确的解释一下
  1. public class Demo
  2. {
  3.    public static void main(String[] args)
  4.    {
  5.        int x = 0;
  6.        for(int i=0;i<100;i++)      // i++  循环100次,当i=100时退出循环,
  7.            x = x++;                //这句代码的意思是 x++ 这个表达式的值是自增之前的x,x的值是 x+1   所以 x=x++;    不管循环多少次,x的值都是0
  8.            System.out.println(x);   //输出 0 (只输出一次)
  9.    }
  10. }
复制代码
自增: 不管是前++还是后++,对于x的值都是一样的(x+1),只是整个自增表达式的值不同
y=x++;    //相当于  先y=x,    再x=x+1;
y=++x;    //相当于  先x=x+1,  再y=x;
自减: 跟自增一样,对于x的值都是(x-1),整体表达式的值不一样
y=x--;   //相当于  先y=x,    再x=x-1;
y=--x;    //相当于  先x=x-1,    再y=x;

作者: 张宁    时间: 2013-2-25 16:02
首先给x赋初值0,然后定义一个从0到99的for循环 ,x递增,依次输出x




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2