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

一条没看懂的语句!

 ""x""为什么结果显示为"4"主要是这条语句""int x=(m*8/(n+2))%m;"没看明白"

public class HelloWorld {

    public static void main(String[] args) {

int m = 5;

int n = 7;

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

System.out.println("m:" + m);

System.out.println("n:" + n);

System.out.println("x:" + x);

}

}


提问者:JE_DK 2017-06-28 21:48

个回答

  • 慕圣8424433
    2017-06-29 16:44:36

    int m = 5;

    int n = 7;

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

    有括号先算括号里的内容,和数学里的算法顺序一样。先算(n+2)=9,再算m*8=40,再算m*8/(n+2)=4,除法取商;再算(m*8/(n+2))%m=4,%表示除法取余数。

  • 慕娘1434312
    2017-06-28 22:40:33

    m*8=40

    40/9=4(取整)

    4%5=4(求余数)

  • 孤单看客
    2017-06-28 22:08:50

    /是取商

  • 慕粉3398068
    2017-06-28 22:01:37

    m*8=40;

    40/9=4;取整

    4%5=4;取余


  • 明天何其多
    2017-06-28 22:01:24

    5*8/9)%5=(40/9)%5=4%5=4
    40/9=4.4444,因为定义的是整数型所以运算结果只取4整数。
    4%5=0余4,所以运算结果是4.