始终不明白int x = (m * 8 / (n + 2)) % m;

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

慕粉3409521

2018-11-13 16:49

在这里,定义x难道不是右边的运算是一个整体吗?我是觉得40/9这个分式再对5取余是无法做到的。为什么大家的解释是先对40/9取整,然后再取余,有点看不懂

写回答 关注

7回答

  • l沉沦l
    2019-02-03 13:04:54

    4%5=4是因为4小于5所以取的是它本身

  • 鲜奶面包
    2018-12-03 19:16:08

    int x = (m * 8 / (n + 2)) % m;

    运算规则应该是先乘后除再取余  有括号的要先计算括号内的  计算结果要看看所求结果需要什么类型 如 int double

  • 慕数据7332928
    2018-11-24 17:16:03

    /取商  %取余

    40/9=4

    4%5=4


    慕少1317...

    40/9 =4 我懂。 4%5 我就不懂了。不应该出来是0.8吗,再怎么余怎么跟4沾不上关系

    2020-03-24 17:22:05

    共 1 条回复 >

  • yyz要学java
    2018-11-14 08:49:59

    (8m/(n+2))%m    其实只要你理解了java中运算符的优先级问题 应该这个就很好理解了   希望能对你有所帮助

  • Loveless_World
    2018-11-13 22:05:27

    因为有括号啊,java里面括号的优先权最大。所以肯定是先计算(n+2),再按照乘除的顺序运算m*8/(n+2),最后再取余数%

  • 慕粉3409521
    2018-11-13 16:57:32

    如果int x = m * 8 / (n + 2)

    然后int y = x % m

    这样的话我就明白y的表达式是4 % 5,结果是4.但是int x这样的定义,为什么 int x = (40 / 9)% 5.为什么可以先运算对40/9取整再取余呢,难道右边的表达式不是一个整体吗

  • 老子天天下第一
    2018-11-13 16:51:30

    4%5取余商0。余数不就是4吗?

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

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

1166312 学习 · 17590 问题

查看课程

相似问题