黑马程序员技术交流社区
标题:
x=x++
[打印本页]
作者:
黄敬璇
时间:
2015-4-23 15:33
标题:
x=x++
public class test
{
public static void main(String[] args)
{
int x=1;
for(;;)
{
x=x++;
System.out.println(x);
}
}
求解 为什么结果为1 , 请详解 x=x++ 是怎么运算的 ?多谢
}
作者:
dengxing
时间:
2015-4-23 15:52
x=x++,是先把后一个x的值即1赋值给前面的x,然后再++,如果是x=++x的话打印的值就为2了,即++后再把值赋给x
作者:
Zack
时间:
2015-4-23 16:02
用x = ++x;或者直接x++;结果就是2
作者:
雾大探路
时间:
2015-4-23 16:07
x++是先赋值后运算,把1赋值给x,然后运算++,而++x是先运算后赋值。
作者:
cyr
时间:
2015-4-23 16:12
你要理解x++的涵义啊,x=x++,x先赋值给x,然后再+1,问题是等x+1的时候没有用x去接收,所以x永远都是1;
作者:
殃金咒
时间:
2015-4-23 17:36
先赋值,后++。
作者:
893269222
时间:
2015-4-23 17:57
没有循环条件,只执行一次??
作者:
fanxia_2007
时间:
2015-4-23 18:17
先赋值,再运算
作者:
YQliang
时间:
2015-4-23 18:30
首先这是一个死循环,x=x++是x的初始值赋给了x,但是每次循环的时候X还是那个X,因为他把初始值赋给了自己而不是运算后的值赋给自己,如果是X++,那么每次运算完后X自身已经变了;你可以拿x=++x看一下就知道了
作者:
哔哩哔哩
时间:
2015-4-23 18:40
http://bbs.itheima.com/thread-188910-1-1.html
有详细解释
作者:
zhiweiqi
时间:
2015-4-23 18:48
x++:x先参与运算然后再加1
++x:x先加1然后再参与运算
作者:
柒夜
时间:
2015-4-23 18:54
x=x++;是后面的x先把自己的值赋给前面的x,然后自己本身再+1,
作者:
li514620797
时间:
2015-4-23 19:17
x=x++就是x本身自加1
作者:
小白中的大白菜
时间:
2015-4-23 19:18
是赋值 运算循序的关系。
x=x++ 是赋值在进行自加运算,
x=++x 是先自加 在赋值,
x= x++ 是先把x的值付给自身了。然后输出x 至于之后的++ 虽然也运算了,但是没有赋值也没有操作。
作者:
过路人
时间:
2015-4-23 19:35
目测死循环,楼主本来是我们班的妹子,结果去了下一期。:Q
作者:
yxnheima
时间:
2015-4-23 19:50
是先赋值再++
作者:
赶路要紧
时间:
2015-4-23 22:34
for(;;)这是啥意思???
作者:
Oh.Ba
时间:
2015-4-23 22:47
你for里面什么都没定义啊,for就不会运行x = x++。
作者:
高光天
时间:
2015-4-23 23:18
运行的时候先在内存中的区域创建一个临时变量用来存放x的值(1),然后进行x的自加运算,x变为2,之后临时存放变量的值1在赋给x,所以输出为1
作者:
rose_xiaomei
时间:
2015-4-24 03:58
一个简单的记法:
++X 加号在前,就先运算在赋值
X++ 变量在前,就先赋值再运算
作者:
莫里亚蒂
时间:
2015-4-24 07:20
一般都不x=x++这么写·~直接写x++就可以了
作者:
忘言
时间:
2015-4-24 11:27
在java里面,执行x=x++;时
1.先在内存中开辟一个临时空间,将当前的x值放进去;
2,x自增;
3.将临时空间里面的值赋值给x,释放该空间;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2