答案是不是出问题了哦??,x应该等于11,y应该等于10吧,所以这道题应该没有答案吧

答案是不是出问题了哦??,x应该等于11,y应该等于10吧,所以这道题应该没有答案吧

int m = 5,n=6;

int x =(m++)+n;

int y = (--m)+n;

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

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

8回答
橘子爱喝茶 2019-06-12 01:33:40

根据运算符优先级,()是最高级的,所以int x = (m++)+n;这一行会先运算(m++),因为m=5,所以m++为6,所以最终结果是x=12;注意,此时m已经改变,即m=6;然后int y = (--m)+n;同理运算,先运算(--m),结果为5,所以y=5+6=11;

慕容0324668 2019-06-07 09:27:07

m++ 后  m = 6

在第三行

--m 时 m =5   再+n(n=6)   所以   y也等于11

哆丶哆 2019-05-30 11:56:27

y怎么会等于10呢,n是固定不变的6,m的值最低是5啊

kinght 2019-05-20 16:53:52

int m = 5,n=6;

int x =(m++)+n;

//m++=6  但是由于是m++所以,m不参与这次运算赋值,故结果11

int y = (--m)+n;

//这里的m是已经经过自加一次后的m,这里参与运算的m是6,而--m要参加这次赋值,故这次6-1=5 5+6=11


喂肥的风筝 2019-05-17 17:13:01

x=(m++)+n  相当于

x=m+n   m=m+1  故 x=11  m=6

y=(--m)+n  相当于

m=m-1   y=m+n  故m=5   y=11

好帮手慕小班 2019-05-17 10:10:21

同学理解的非常正确的哦,例如得到x和y的值是对应m的值分别为:

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

继续加油~

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

慕盖茨1205792 2019-05-16 21:27:42

   int m=5,n=6;
        x=(m++)+n;
        y=(--m)+n;
        System.out.println(x);
         System.out.println(m);

可是这样打印的结果,依然m=5



提问者 慕运维lh 2019-05-02 23:58:18

懂了,应为第二行代码此时已经将m的初值变成6了。所以下一行代码是(--m)=5+6 所以结果为11

  • int m=5,n=6; x=(m++)+n; y=(--m)+n; System.out.println(x); System.out.println(m); 可是这样打印的结果,依然m=5
    2019-05-16 21:29:57
  • int m=5,n=6; x=(m++)+n; y=(--m)+n; System.out.println(x); System.out.println(m); 可是这样打印的结果,依然m=5
    2019-05-16 21:30:13
  • 已经明白了
    2019-05-16 21:40:01
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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