问答详情
源自:3-3 Java中的赋值运算符

Java赋值预算的问题

57e6786f0001f53005000268.jpg

57e678700001afc105000305.jpg

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

提问者:慕圣2362166 2016-09-24 20:59

个回答

  • 慕粉void
    2016-09-24 23:08:26
    已采纳

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

    每次都对three1重新赋值。

  • qq_hsp_0
    2016-09-24 21:26:13

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

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

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

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

  • txm4056228
    2016-09-24 21:19:46

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