关于取模后结果为4,想不通,希望指点下,别人的评论我看了,还是没有理解,感觉解释的跳过了重点。

来源:3-8 Java中运算符的优先级

律生息

2017-01-09 02:22

源代码是int X=(40/9)%5;输出X=4

第一点,=优先级低于%所以先有4.4%5=4.4才对,为什么使4.4取整了为4,取整应该是取模计算完成后的操作。

第二点,如果第一点成立,则答案应该是4.4,将双精度浮点赋值给int,在没有进行强制转换X=(int)4,4时应该会显示error,为什么没有显示,而是正常输出,那么说明赋给int的值为4而不是4.4,我觉得按照我的思维应该是显示error,,,而不是4,,,


写回答 关注

3回答

  • qq_找不到表情_0
    2017-02-28 18:39:09

    源代码是int X=(40/9)%5;输出X=4

    第一点,=优先级低于%所以先有4.4%5=4.4,但是因为都是int型的,所以自动转换了,直接省略掉了小数,所以4.4取整了为4。

    第二点,你第一点不成立


  • 慕侠0718635
    2017-01-14 15:15:59

    第一点:定义的m和n都是int,所以两数相除默认为int类型。

  • 厍歨仐
    2017-01-09 02:57:50

    取模(%),你可以理解为小学时候学过的除法运算,取模就是取的余数,只有整数,不会有小数的;4除以5,除不开,于4;

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

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

1167355 学习 · 18677 问题

查看课程

相似问题