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

Java赋值预算的问题

57e6786f0001f53005000268.jpg

57e678700001afc105000305.jpg

在系统答案中three是有重新赋值的,,但是用新的变量(three1-5)代替的需要重新赋值的three,效果一样!!!       但是我的代码中感觉新变量重新赋值:three5=three1/=one;three6=three1%=one;单独看t5应该是t5=30/10=3,t5为什么在整体代码中结果也和重新赋值是一样的?其中感觉结果和答案一致是偶然性的(感觉代码是错误的,但是改变数值重新运行后发现结果和答案代码运行结果还是一致)?哪位高手明确一下可以这样解释么?

正在回答

3 回答

three1+=one; // 相当于 three1 = three + one;
three1-=one; // 同理
three1*=one; // 同理
three1/=one; // 同理
three1%=one; // 同理

每次都对three1重新赋值。

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

慕粉void

three1写成three了
2016-09-24 回复 有任何疑惑可以回复我~
#2

慕圣2362166 提问者

非常感谢!
2016-09-25 回复 有任何疑惑可以回复我~

单独看t5应该是t5=30/10=3

但是在t4的时候three=300了。

拆开t4的代码就是 three4 = three1 = three * one;

也就是你自己说的t4对t1重新赋值了。

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

慕圣2362166 提问者

也就是说 int three2=three1+=one; int three3=three1-=one; int three4=three1*=one; int three5=three1/=one; int three6=three1%=one;每一次运算都在对t1重新赋值?那么比如为什么 int three4=three1*=one;这个程序会对t1冲新赋值?
2016-09-24 回复 有任何疑惑可以回复我~

因为在three1/=one是对three1赋值为three1/one,但是把three1/=one看成一个整体它的值等于three1/one的值,然后three5=three1/=one就是在给three1赋值的同时把three1的值给了three5,所以你在定义新的变量的时候只是用新的变量记录了运算的中间结果,但是还是一直在对three1计算

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

慕圣2362166 提问者

也就是说 int three2=three1+=one; int three3=three1-=one; int three4=three1*=one; int three5=three1/=one; int three6=three1%=one;每一次运算都在对t1重新赋值?那么比如为什么 int three4=three1*=one;这个程序会对t1冲新赋值?
2016-09-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165264    人
  • 解答问题       17582    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

Java赋值预算的问题

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