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

求大神看我代码

   int one = 10 ;

        int two = 20 ;

        int three = 0 ;

        int a=one+two,b=a+=one,c=b-=one,

        d=c*=one,e=d/=one,f=e%=one;

        System.out.println(a+"\n"+b+"\n"+c+"\n"+d+"\n"+e+"\n"+f);

显示结果是

40
30
300
30
0
0

很是纳闷,怎么后面多了个0,前面少了个30


正在回答

2 回答

在你给后面的变量赋值时改变了前面的变量的大小。

比如a=one+two=30,当你给b赋值时,用了b=a+=one,这个时候先计算a+=one,意思是a=a+one=40,这个时候a=40,然后b=a+=one=40,所以当你给b赋值完后,结果是这样的,a=b=40。依次类推。

4 回复 有任何疑惑可以回复我~
#1

慕工程3935333

有道理,想一想确实是这样.
2016-11-20 回复 有任何疑惑可以回复我~
#2

qq_流年坠繁花_04322302 提问者

膜拜
2016-11-20 回复 有任何疑惑可以回复我~
System.out.println(+a+"\n"+b+"\n"+c+"\n"+d+"\n"+e+"\n"+f);再试试


0 回复 有任何疑惑可以回复我~
#1

qq_流年坠繁花_04322302 提问者

就a前面多了个+,结果还是一样。
2016-11-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求大神看我代码

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信