A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄敬璇 中级黑马   /  2015-4-23 15:33  /  1379 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class test
{
        public static void main(String[] args)
        {
                int x=1;
               
                for(;;)
                {
                       
                        x=x++;
                        System.out.println(x);
                }
        }
求解 为什么结果为1   , 请详解 x=x++ 是怎么运算的   ?多谢
}

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

21 个回复

倒序浏览
x=x++,是先把后一个x的值即1赋值给前面的x,然后再++,如果是x=++x的话打印的值就为2了,即++后再把值赋给x
回复 使用道具 举报
用x = ++x;或者直接x++;结果就是2
回复 使用道具 举报 2 0
x++是先赋值后运算,把1赋值给x,然后运算++,而++x是先运算后赋值。
回复 使用道具 举报
你要理解x++的涵义啊,x=x++,x先赋值给x,然后再+1,问题是等x+1的时候没有用x去接收,所以x永远都是1;
回复 使用道具 举报
先赋值,后++。
回复 使用道具 举报
没有循环条件,只执行一次??
回复 使用道具 举报
先赋值,再运算
回复 使用道具 举报
首先这是一个死循环,x=x++是x的初始值赋给了x,但是每次循环的时候X还是那个X,因为他把初始值赋给了自己而不是运算后的值赋给自己,如果是X++,那么每次运算完后X自身已经变了;你可以拿x=++x看一下就知道了
回复 使用道具 举报
回复 使用道具 举报
x++:x先参与运算然后再加1
++x:x先加1然后再参与运算
回复 使用道具 举报
x=x++;是后面的x先把自己的值赋给前面的x,然后自己本身再+1,
回复 使用道具 举报
x=x++就是x本身自加1
回复 使用道具 举报
是赋值 运算循序的关系。
x=x++   是赋值在进行自加运算,
x=++x  是先自加 在赋值,
x= x++  是先把x的值付给自身了。然后输出x   至于之后的++ 虽然也运算了,但是没有赋值也没有操作。  
回复 使用道具 举报
目测死循环,楼主本来是我们班的妹子,结果去了下一期。:Q
回复 使用道具 举报
是先赋值再++
回复 使用道具 举报
for(;;)这是啥意思???
回复 使用道具 举报
Oh.Ba 中级黑马 2015-4-23 22:47:23
18#
你for里面什么都没定义啊,for就不会运行x = x++。
回复 使用道具 举报
运行的时候先在内存中的区域创建一个临时变量用来存放x的值(1),然后进行x的自加运算,x变为2,之后临时存放变量的值1在赋给x,所以输出为1
回复 使用道具 举报
一个简单的记法:
++X 加号在前,就先运算在赋值
X++ 变量在前,就先赋值再运算
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马