编程题一道
若有定义intm=5,y=2;则执行表达式y+=y-=m*=y后y的值是多少?为什么?谢谢!...
若有定义int m=5,y=2;则执行表达式y+=y-=m*=y后y的值是多少?
为什么?谢谢! 展开
为什么?谢谢! 展开
4个回答
展开全部
我刚才测试了一下 如果直接输出 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 其他的你自己运行看看, 我能理解到底程度就这些,希望有更好地回答我也看看
而后我又分解
//表达式分解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 其他的你自己运行看看, 我能理解到底程度就这些,希望有更好地回答我也看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用java运算得到m=10 y=-6;
java有先计算后赋值的原则.所以m*=y后,只是先运算2*5,并没有吧计算结果赋值给m,所以到计算y-=m时,m的值还是5.
这样算下来,就得到了这个结果.
我想c语言的结果应该和这个不一样,我没猜错的话应该是m=10 y=-16
java有先计算后赋值的原则.所以m*=y后,只是先运算2*5,并没有吧计算结果赋值给m,所以到计算y-=m时,m的值还是5.
这样算下来,就得到了这个结果.
我想c语言的结果应该和这个不一样,我没猜错的话应该是m=10 y=-16
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
由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;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
y=-16
执行步骤是:m=m*y
y=y-m
y=y+y
执行步骤是:m=m*y
y=y-m
y=y+y
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询