关于three=one+two的问题

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

慕雪1790920

2016-10-01 21:20

http://img.mukewang.com/57efb6290001b4d304440583.jpg

我想问下,为什么我这里的three=one+two.运算出来的结果是0呢?three1既然已经被我赋予one+two不该是10+20是30吗?

写回答 关注

4回答

  • 明明爱你cy
    2016-10-01 22:03:51
    已采纳

    理解java中各运算符的优先级即可,一步一步往下执行

    http://img.mukewang.com/57efc1b80001b02008340328.jpg

    经过最后int three6=three1%=one;

    最终

    three1=0;

    three3=30;

    three4=300;

    three5=30;

    three6=0;


    慕粉4021... 回复慕雪1790...

    vvbb

    2016-10-08 15:27:09

    共 2 条回复 >

  • Veahow
    2016-10-01 22:59:40

    程序都是依照顺序结构执行的,即自上而下一步步执行。因此,在你还没有使用System.out.println()的时候,three1的值已经有了多次的变化。第一次的确是30,但后面就又改变了,因为你使用了+=运算符(加上数后再赋值),相比+运算符多了个赋值的变化。具体情况分析,参照楼上同学。

  • 食己少女
    2016-10-01 21:51:47

    可是后面那些three1+=one、three1-=one、three1*=one....语句都是先对three1进行复合赋值操作,再把three1赋值给左边的变量...最后一个操作也就是three1%=one让three1的值变为0了

  • 轩墨然
    2016-10-01 21:51:38

    因为数据都被定义成的静态变量 (static)

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

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

1167369 学习 · 18748 问题

查看课程

相似问题