编程题一道

若有定义intm=5,y=2;则执行表达式y+=y-=m*=y后y的值是多少?为什么?谢谢!... 若有定义int m=5,y=2;则执行表达式y+=y-=m*=y后y的值是多少?
为什么?谢谢!
展开
 我来答
tsx718
2010-07-26 · TA获得超过1613个赞
知道小有建树答主
回答量:668
采纳率:0%
帮助的人:599万
展开全部
我刚才测试了一下 如果直接输出 System.out.println(y+=y-=m*=y) 结果是-6
而后我又分解
//表达式分解y+=y 等于 y = y + y
//表达式分解y-=m 等于 y = y - m
//表达式分解m*=y 等于 m = m * y
//最后得到的是m的值
//System.out.println("y= " + (y = y + y));
//System.out.println("y= " + (y = y - m));
//System.out.println("m= " + (m = m * y));
m的值是-5 其他的你自己运行看看, 我能理解到底程度就这些,希望有更好地回答我也看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjn882288
2010-07-26 · 超过24用户采纳过TA的回答
知道答主
回答量:84
采纳率:0%
帮助的人:0
展开全部
用java运算得到m=10 y=-6;
java有先计算后赋值的原则.所以m*=y后,只是先运算2*5,并没有吧计算结果赋值给m,所以到计算y-=m时,m的值还是5.
这样算下来,就得到了这个结果.

我想c语言的结果应该和这个不一样,我没猜错的话应该是m=10 y=-16
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gm7996
2010-07-26 · TA获得超过1199个赞
知道小有建树答主
回答量:645
采纳率:100%
帮助的人:542万
展开全部
y+=y-=m*=y;

由m*=y得
y+=y-=10; //m*y = 5*2 = 10, 这里没有对y赋值, 因此y仍=2

由y-=10
y+= -8; // y = 2-10 = -8, 这里y = -8

y = -16; //-8+-8;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
11依草子
2010-07-26
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
y=-16
执行步骤是:m=m*y
y=y-m
y=y+y
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式