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

求大神看我代码

   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


提问者:qq_流年坠繁花_04322302 2016-11-20 20:12

个回答

  • 胖慕粉3556762
    2016-11-20 20:40:30
    已采纳

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

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

  • 你知道我全都知道
    2016-11-20 20:23:54

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