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

赋值运算为何是这样的

 three=one+two;
          System.out.println(three);
          three+=one;
          System.out.println(three);
          three-=one;
          System.out.println(three);
          three*=one;
          System.out.println(three);
          three/=one;
          System.out.println(three);
          three%=one;
          System.out.println(three);

   谁能解释下为何代码是这样的,这个代码看不懂为何three=one+two;却输出System.out.println(three);的结果是30而不是0

提问者:人心易冷 2017-01-21 13:50

个回答

  • 软件工程在线学生
    2017-01-22 21:07:40

    这题首先是已经将局部变量three初始化为0,它是一个局部变量,然后局部变量变成了one+two,此时three的值已经为30,然后输出它的值为30,后面做的three+=one;这时three的值已经为30,然后加上one,变为40,总而言之,three 局部变量的值会随之改变。

  • qq_飞鸟_3
    2017-01-22 12:14:38

    代码不完整,one,two,three.是如何定义的呢?


  • 帝有
    2017-01-21 14:37:57

    three是左值,“=”是赋值符号:将右边运算的值赋值给左边的值(左值)。左值必须是变量,不能是常量,比如3=1+2是不合法的,计算机认为是错误的,编译不能通过。

  • 不一样唉
    2017-01-21 14:33:17

    three=20+10=30;   three是one与two的和。