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

结合运行结果: x=4,表示不理解

m=5,n7

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

结合运行结果: x=4,表示不理解


提问者:Sep8 2014-11-10 17:11

个回答

  • 16_szez谋事在人_成事在天
    2014-11-11 11:23:13
    已采纳

    因为 40/9=4.4 因为int类型取整是4  %是求余符号  4÷5 余数 4

  • 慕圣351674
    2018-06-07 07:55:12

    40/9=4.4而int要取整,并且不管是40/9=4.4还是9/2=4.5都是取4即去除后面的小数而不是四舍五入。

  • 墨泽先森
    2018-03-21 19:52:57

    其实我最开始也不理解,经过群内大神讲解

    因为JAVA只去整数,所以40/9结果为4,4%5,相当于4/5,但是商必须是整数,所以就直接是4了,4/5可以除尽,但是小数,而且这样就无法取余了,初三狗为了放弃游戏正在努力JAVA,同时提升一些罗辑思维和单词量

  • wangcunc
    2017-09-20 16:24:51

    4取余5商0余4啊。

  • qq_时光_71
    2017-04-15 15:43:40

    我的理解:

    求余号% 前面的数除后面的数,取余数,和我们小时候算余数一样:9除以4余数是1,9%4 == 1

    浮点数的求余差不多,不在后面补零的余数(5.2%4.1 == 1.1),

    但浮点数的求余计算会有数据精度问题,5.2%4.1可能结果会是1.1000000005

  • 0821
    2016-12-05 23:10:43

    n+2=9;取和

    m*8=40;求积

    40/9=4;求商

    4%5=4.取模


  • 源远流长d
    2016-11-04 19:34:21

    无语了,建议先学C语言入门

  • 小可爱dd
    2016-10-31 18:53:51

    20/7×1/5,约分后相当于4/7.但是4除不了7,所以就把4落下来喽

  • 慕粉1725046274
    2016-10-28 15:54:44

    4余5不是0吗?怎么是4呀?大神?

  • wwww_
    2016-08-07 18:49:29

    ()的优先级最高,所以先算n+2=9,再算(m*5/9)=40/9,因为类型为整型故40/9的商取整数4,最后算4%5,得商0余4,故最后结果为4

  • 一万个为什么
    2016-01-07 12:11:37

    woqu ,有点逆天

  • 慕姐3542930
    2015-12-30 11:44:20

    4%5为什么余4呢

  • 白玦
    2015-12-05 00:09:21

    这些运算符默认都是取整操作

  • 致远163
    2015-10-10 16:10:26

    只是最后的结果要求是int类型赋值给x,怎么理解计算过程中40/9的结果也取int类型呢?

  • Conn丶兮兮
    2015-07-29 15:21:33

    40/9 得4 余4,因为是int类型,所以取4就行,然后4%5 得0余4,所以取余为4.

  • 残暴之血
    2015-07-17 15:45:54

    总感觉40/9之后还没有完成赋值运算,实际上赋值应当是40/9%5才对啊,为什么在40/9的时候就要取整了?

  • 跑步的感觉
    2015-06-23 15:53:52

    取整,取整,取整,重要的事情说三篇。仅仅是取整,千万不要四舍五入

  • 寒衫骨半夜乌啼
    2014-12-18 18:36:32

    运算符优先级问题,()是最优先,所以先算最内层()中的内容(n+2),然后就变成了(5*8/9)%5,依然先算()内的内容,从左到右依次计算,结果取int型,变成了4%5,商为0,余4。取余为4。

  • HappyHacking
    2014-11-16 15:18:37

    首先先写成容易看的:int x = (5 * 8 / (7 + 2)) % 5;

    运算过程:

    int x = (5 * 8 / 9) % 5;

    int x = (40 / 9) % 5;// 40 / 9 = 4

    int x = 4 % 5;// 4 除以 5取余

    int x = 4;

  • twocold
    2014-11-10 17:29:17

    40/9=4,都是int类型只取整数部分。

    4%5=4,4对5取余数

  • Sep8
    2014-11-10 17:12:51

    40/9%5 ??