投稿 资料上传 提问 搜索
您现在的位置是: 首页 > 问答 > 正文

请教一个Java += 的问题???

我们都知道x+=1 <=>x =x+1,但是现在有这么个问题:x += Math.random()10;是没问题的,x =x + Math.random()10;其中x为int类型,后者为什么会报错呢?或者说前者为什么不报错?+=还有什么隐藏特性吗?  

问题回复
  1. 无字情书
    无字情书IT技术之家

    x=x+Math.random();报错原因是 这个程序这个执行的顺序:1.先读取右边X的地址。2.右边X与1相加,因为Math.random的结果为double型,所以int与double相加是double型,3.将右值传给左边的x(编译器并不认为左右x的地址相同),而这时左边为int型 而右边为double型,所以报错。如图, 

     

    回复