Java赋值预算的问题

来源:3-3 Java中的赋值运算符

慕圣2362166

2016-09-24 20:59

57e6786f0001f53005000268.jpg

57e678700001afc105000305.jpg

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

写回答 关注

3回答

  • 慕粉void
    2016-09-24 23:08:26
    已采纳
    three1+=one; // 相当于 three1 = three + one;
    three1-=one; // 同理
    three1*=one; // 同理
    three1/=one; // 同理
    three1%=one; // 同理

    每次都对three1重新赋值。

    慕圣2362...

    非常感谢!

    2016-09-25 07:57:10

    共 2 条回复 >

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

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

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

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

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

    慕圣2362...

    也就是说 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 21:39:43

    共 1 条回复 >

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

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

    慕圣2362...

    也就是说 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 21:39:26

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

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

1165792 学习 · 17588 问题

查看课程

相似问题