为了账号安全,请及时绑定邮箱和手机立即绑定

为什么最后两行的结果都是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);

        

        

        

        

        

    

}

}


正在回答

3 回答

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

0 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~
#1

慕移动8447653 提问者

谢谢!
2017-08-08 回复 有任何疑惑可以回复我~

就是30和0啊

0 回复 有任何疑惑可以回复我~
#1

不自觉的自学狂徒

我刚开始猛一看也以为是30和0,把代码敲出来瞬间就明白了
2017-08-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信