若有 a=3, a+=a*=a; 为什么结果等于12,不等于18?

若有 a=3, a+=a*=a; 为什么结果等于12,不等于18?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

65回答
MrFourth 2019-03-21 17:43:14

第一步:a*=3*3=9,  第二步:a+=9,即a=a+9,答a=3+9=12

新媒体 2019-03-20 11:37:32

先计算a*=9,再计算a+=9,即a=a+9=3+9=12

蜉蝣扶幽 2019-02-24 16:14:36

变量值都存储在内存的栈区,在一个表达式运算结束前,变量值是不会更新的,即:一个变量在一个表达式内保持同一个变量值不变,表达式计算完成后变量值才会更新。

  • 焱羿 #1
    那c和c++为什么等于18
    2019-03-18 15:36:31
W_H_N 2019-02-22 00:37:26

赋值运算符是从右到左运算的,a+=a*=a计算顺序为:a*=a (a=a*a为9);a+=9(a=a+9为12)

qq_慕用824266 2019-02-20 22:52:19

a=a+a*a 这样能看懂吧

慕斯5176033 2019-02-19 10:39:36

计算最右边的等式,得到a带入第一个等式

慕沐4026019 2019-02-12 17:43:59

从右向左计算,先算乘再算加。

梦殇乀 2019-02-12 16:46:03

从右边往左边计算,即,a=3+3*3;

a=12


qq_夏日青枫_0 2019-02-11 16:04:43
你可以理解为是赋值,从右往左看,a*=a可以理解为a=a*a,因为a为3,所以a+=a*=a就变成了a+=9,而
a+=9又可以看成是a=a+9,所以最终结果为12


慕娘2585209 2019-02-10 15:42:35

从右往左计算,具体情况见下图

http://img1.sycdn.imooc.com//climg/5c5fd5c50001f90d08180840.jpg

qq_以后在这里_04210643 2019-02-03 13:22:22

a=a+(a*a) 把右边的a=3代入

慕设计4334299 2019-02-01 16:48:49
从右向左计算,先算乘再算加。


Verstance 2019-01-30 08:44:09

好像Java和C++不一样,我用C++计算就是18

http://img1.sycdn.imooc.com//climg/5c50f35200011dd705850177.jpg

蜜蜂仔 2018-11-24 22:01:55

运算过程中计算机会暂存运算中的部分结果,等运算结束才会最终赋值

a=3.  所以 a*=a 得到的结果为:9 .   然而 9 这个运行结果是由系统暂时存储的。a 依然还是 3

当运算继续,a+= a*  已经是 a = a(3) + 9.  到这里整个运算才算结束,系统才会把运算值赋给a

最后a=12.


shawnshone 2018-11-24 17:59:37

int a=3;
a+=a*=a;

从右往左分解为:
a=a*a;
a=a*a+a;
a=3*3+3=12;

单志鹏 2018-11-22 14:21:29

表达式在执行是,a一直是为3的

qq_慕勒1577456 2018-11-22 01:07:39

a=3,a+=a*=a;

计算方式a=a*a+a=3*3+3=12

学习中的傅山 2018-11-20 17:02:49

inti=5;
int S = (i++)+(++i)+(i-- )+(--i); 和这题不一样的地方是i的值会改变是为什么

  • 因为i每次赋值之后都要进行运算呀,所以它的值会改变, i++赋值为5后i自增+1,此时i的值为6 ++i会先自增在赋值,所以++i的值为7 i--是先赋值在自减,所以i--的值为7,然后-1为6, --i的是先自减在赋值,6-1为5,所以--i的值为5 最后6+7+6+5得24,这是运算的全过程,同学可以理解一下,祝学习愉快~
    2018-11-20 18:17:41
学习中的傅山 2018-11-15 19:59:19

我在工具上运行了   如果是c语言等其他的语言  那a 的值在a*=a时就会变成9  但是java中不会改变

http://img1.sycdn.imooc.com//climg/5bed5f850001694a05050083.jpghttp://img1.sycdn.imooc.com//climg/5bed5f940001176902090043.jpg

浮生Y一梦 2018-10-13 15:55:16

从右往左进行计算,首先先算a=a*a=3*3=9,在计算a=a+9=12

首页上一页1234下一页尾页
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师