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

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

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

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

65回答
谦虚的爱 2018-10-10 22:12:10

a+=a*=a可以转化为a=a+(a*a)=3+(3*3)=12

jason_keng 2018-10-09 00:08:34

第一步:a*=a   即 a=a*a 此时 a = 3*3

第二步:a+=a  即 a=a+a 此时 a= 3+9 (表达式为执行完时,a的值不发生变化)

qq_光光_kotMPS 2018-10-07 13:06:32
1.a+=(a*=a)
2.a+=(a=a*a)
3.a+=(a=3*3)
4.a+=(a=9)
5.a=a+(a=9)
6.a=(a=3)+(a=9)
7.a=3+9
8.a=12


yoThomas 2018-10-06 07:29:18

楼主的问题应该是a*=a完成后a的值应该变成9了,然后a+=a是18。按各位给的答案,应该是要等执行完这行代码后a的值才改变吧,而不是执行中改变。

CaptainYD 2018-10-03 22:23:17
这不是一只羊 2018-10-01 09:58:33

化简公式:  a+=a*=a;       a+=a*a ;         a=a+a*a ;    a=3+3*3=12;

渣渣小琴 2018-09-25 17:22:55

从右往左运算:a=a*a;得a=9;

然后运算:a=a+a;得a=9+3=12;


紧张 2018-09-25 11:03:12
慕粉3879310 2018-09-24 12:07:20

运算顺序为从左向右。

Robin丶Deng 2018-09-22 11:26:55

从右往左运算:a=a*a;得a=9;

然后运算:a=a+a;得a=9+3=12;


小坏坏也很拽sss 2018-09-13 20:17:20

从右往左运算:a=a*a;得a=9;

然后运算:a=a+a;得a=9+3=12;

暴躁小腿师 2018-09-12 10:16:52

我也想问!!

a=3, a+=a*=a

运行完第一步a*=a时,a=9;

运行第二部时,a不应该等于9吗?为什么还要取3?

a*=a虽然是运算,但是也有赋值的功能啊!有点迷惑!

吴纪宇 2018-09-04 22:20:00

从右往左运算

慕仔1940952 2018-09-04 21:26:37

a = a* a + a 

WorldLink 2018-09-02 10:46:16

a = 3,a+=a*-a

拆分:a = a+ a*a

请你加油 2018-08-25 16:01:32

我是这样拆分的  a+=a=a*a

                          a=a+a*a;

heiantus 2018-08-24 17:00:41

赋值运算符从右往左计算,且在计算过程中a的值没有变过。所以先计算a*=a答案是9,再计算a+=9得出12。

一世修成 2018-08-15 16:12:31

代码拆分:

a+=a*=a

a=a+(a*a)

a=3+(3*3)

a=3+9

a=12

阿崔i 2018-08-12 00:20:01

a+=a*=a; 首先,因为有2个=号赋值,左边是最大的,最终是给左边的=号,所以从右边先算乘再算+

优益Co 2018-08-09 11:44:32

a = 3;

a = a+=(a*=a)
a = 3 + 9
a = 12


问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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