为了账号安全,请及时绑定邮箱和手机立即绑定

麻烦JAVA哥们姐们来看看这段代码怎么是这么输出的

麻烦JAVA哥们姐们来看看这段代码怎么是这么输出的

surpasswei 2015-03-12 15:20:10
class lianXi2{ int num1; int num2; int num3; //创建构造函数 lianXi2(){ num1=5;                     } //创建成员方法 void disPlay(){ System.out.println("num:"+num1); //前缀 num2=++num1; System.out.println("++num:"+num2); //后缀 num3=num1++; System.out.println("num++:"+num3); } public static void main(String[] args){ lianXi2 lx2=new lianXi2(); lx2.disPlay(); } } /*问题:我觉得输出应该分别是num1:5    num2:6    num3:5,把前缀后缀位置交换的话输出又不同,这是为什么呢?num1的值应该一直是5没变啊?希望理解的帮我分析一下哦,谢谢!!*/
查看完整描述

3 回答

已采纳
?
lymo

TA贡献3条经验 获得超0个赞

num2=++num1; //num1=6, num2=6,
num3=num1++; //num1=7, num3=6


查看完整回答
反对 回复 2015-03-12
  • surpasswei
    surpasswei
    也就是说不管是先取值还是后取值,num1本身的值还是改变了的是吧?
  • lymo
    lymo
    先取值还是后取值是相对赋值的,如果是对变量本身++num跟num++是一样的
  • surpasswei
    surpasswei
    嗯嗯,懂了,谢谢啦,这个问题问我们专业老师他都看不出哪有问题。。。。。。
?
jety雨涵

TA贡献1条经验 获得超0个赞

5,6,6,楼上的分析没错,你在disPlay最后再输出一次num1试试,其实它现在是7了!

查看完整回答
反对 回复 2015-03-12
  • 3 回答
  • 0 关注
  • 1253 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号