java运算符问题

求各种拍砖 2014-12-02 09:28:33
int x = 0;
int y = 0;
输出1:y = x++;
输出2:y = x++ + ++x;

问题:这算是运算符优先级的问题?
输出1:在没有+的时候,执行完=赋值之后再执行++
输出2:++ 比 +的优先级高,所以再遇到+的时候执行完x++再执行后边的++x?猜测
...全文
114 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
七脉 2014-12-03
  • 打赏
  • 举报
回复
y=x++ 会将x++之前x的值,赋值给y,这就好比system.out.print(x++) 打印的是x的值, y=x++ + ++x 因为后面存在运算符+号,所以y会等到(x++ + ++x)执行完毕后再赋值。 注:y=x++ 和 y=++x的值之所以不同,这是java的一种计算方式,死的规定,如果想立即得到X++或++X运算之后的值,就用++X,如果想立即得到X++或++X运算之前的值用X++; 不管是x++或者++x代码结束后,再换行获取X的值时,X都已经加1;
七脉 2014-12-03
  • 打赏
  • 举报
回复
y=x++ 会将x++之前x的值,赋值给y,这就好比system.out.print(x++) 打印的是x的值, y=x++ + ++x 因为后面存在运算符+号,所以y会等到(x++ + ++x)执行完毕后再赋值。 注:y=x++ 和 y=++x的值之所以不同,这是java的一种计算方式,死的规定,如果想立即得到X++或++X运算之后的值,就用++X,如果想立即得到X++或++X运算之前的值用++X; 不管是x++或者++x代码结束后,再换行获取X的值时,X都已经加1;
aaron_gzt 2014-12-03
  • 打赏
  • 举报
回复
x++是先使用x的值然后x再加1,++x是先加1再使用,所以y=x++时y首先被赋值为0了;而++的优先级比+要高,所以第二个输出中执行完++的操作再执行+的操作

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧