为什么最后两行的结果都是7而不是30和0,顺便问一下各种运算符号组合在一起时运算顺序是怎么样的。谢谢!

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

慕移动8447653

2017-08-07 23:19

public class HelloWorld{

    public static void main(String[] args) {

   int one = 10 ;

        int two = 20 ;

        int three = 0 ;

         three=one+two;

        System.out.println("three=one+tow==>"+three);

         three+=one;

        System.out.println("three+=one==>"+three);

         three-=one;

        System.out.println("three-=one==>"+three);

         three*=two/2;

        System.out.println("three*=one==>"+three);

         three/=two*2;

        System.out.println("three/=one==>"+three);

         three%=one;

        System.out.println("three%=one==>"+three);

        

        

        

        

        

    

}

}


写回答 关注

3回答

  • 不自觉的自学狂徒
    2017-08-07 23:39:06
    已采纳

    因为他不是根据你的原始值来计算的,而是根据你最新赋值来算的。也就是第6行的值300来算的。 three/=two*2; 就是300/=20*2  结果等于7.5。因为是int类型所以省去小数点,结果为7 。运算符的顺序后面的题目会讲到,别着急

  • mulin
    2017-08-08 00:03:08

    *的优先级高于/=,所以倒数第二行是300/40,取整数就是7,最后一行7除以10,余数为7。http://img.mukewang.com/59888f330001f78704420399.jpg

    慕移动844...

    谢谢!

    2017-08-08 10:17:46

    共 1 条回复 >

  • mulin
    2017-08-07 23:36:22

    就是30和0啊

    不自觉的自学...

    我刚开始猛一看也以为是30和0,把代码敲出来瞬间就明白了

    2017-08-07 23:40:26

    共 1 条回复 >

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

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

1165558 学习 · 17587 问题

查看课程

相似问题