慕圣2362166
2016-09-24 20:59
在系统答案中three是有重新赋值的,,但是用新的变量(three1-5)代替的需要重新赋值的three,效果一样!!! 但是我的代码中感觉新变量重新赋值:three5=three1/=one;three6=three1%=one;单独看t5应该是t5=30/10=3,t5为什么在整体代码中结果也和重新赋值是一样的?其中感觉结果和答案一致是偶然性的(感觉代码是错误的,但是改变数值重新运行后发现结果和答案代码运行结果还是一致)?哪位高手明确一下可以这样解释么?
three1+=one; // 相当于 three1 = three + one; three1-=one; // 同理 three1*=one; // 同理 three1/=one; // 同理 three1%=one; // 同理
每次都对three1重新赋值。
单独看t5应该是t5=30/10=3
但是在t4的时候three=300了。
拆开t4的代码就是 three4 = three1 = three * one;
也就是你自己说的t4对t1重新赋值了。
因为在three1/=one是对three1赋值为three1/one,但是把three1/=one看成一个整体它的值等于three1/one的值,然后three5=three1/=one就是在给three1赋值的同时把three1的值给了three5,所以你在定义新的变量的时候只是用新的变量记录了运算的中间结果,但是还是一直在对three1计算
Java入门第一季(IDEA工具)升级版
1165792 学习 · 17588 问题
相似问题