比较迷惑的一个问题

zpjava 2010-02-23 05:59:25
int y;
int x=5;
y=(x++);
System.out.println(y);

如果不加括号 打印出来y 的值是5,没有问题的,但是加了括号,括号的优先级最高,按理说应该先执行x++ 在把x 的值赋给y的,但是为什么打印出来的值还是5呢?
...全文
54 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
不善^ 2010-02-23
  • 打赏
  • 举报
回复
x++ 和(x++) 是一样的 赋值时 都是 先引用 后自加
如果 是 System.out.println(x)的话 会自加1
jafapple 2010-02-23
  • 打赏
  • 举报
回复
不是第二次,应该说是x在自增之后,再次被调用时才会改变值。
jafapple 2010-02-23
  • 打赏
  • 举报
回复
X++的规则就是: 当变量X被第二次引用/调用到时,其值才会增加1,不鸟你什么运算符优先级。 看如下例子: int x=1; int sum = (x++)+ x; 结果sum=3; 这是因为第二次使用x时,x已经从前面的x++增加变为2,而表达式第一个x++你可以看成是一个常量1,

67,515

社区成员

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

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