问答详情
源自:3-8 Java中运算符的优先级

小白问题二

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

n=5
m=7
x=4

我就不明白x为毛是4

求教各位?

提问者:慕粉1204256817 2017-03-25 22:13

个回答

  • frece
    2017-03-26 12:05:12

    题目:

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

    n=7
    m=5

    解: x = (5*8/(7+2)) % 5

              =(40/9) % 5

              = 4%5          //   计算40 / 9 = 4.444  取整之后为 4

             = 4                

    除法运算是:(被除数 - 余数) ÷ 除数 = 商  也就是  商 x 除数  + 余数 = 被除数,

    所以,4除以任何一个比4大的数n 都是商0余4,  这样 0 x n + 4 = 4  这个逻辑才是正确的,不然楼主以为结果是几,代进去试试就会发现问题了

  • qq_顿首_0
    2017-03-26 00:04:19

    写反了的话,值应该是4呢;对于%运算,如果分子小于分母,则商为0,余数为分子;/运算,商有整数部分则取整数部分,无则为0 

  • PerFecter_Q
    2017-03-25 22:30:16

    /是取整数,%是取余数

  • PerFecter_Q
    2017-03-25 22:29:03

    7*8=56

    5+2=7

    56/7=8

    8%7=1

    按照你给出的定义,X是等于1的。在eclipse上运行后,结果也是1。

  • 王小小明
    2017-03-25 22:25:59

    m的值为7,7*8=56,n的值为5,5+2=7,56除7=8,8%7=1,不是4 ,伙计,不知道你是怎么得出的4.