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

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

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);

        

        

        

        

        

    

}

}


提问者:慕移动8447653 2017-08-07 23:19

个回答

  • 不自觉的自学狂徒
    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

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

    就是30和0啊