算术运算-Java

时间:2018-03-08 07:19:50

标签: java math addition operations

 class Example {
    public static void main(String args[]){
        System.out.println(12+8/5%4*(5-4/5)+4*5);
    }
 }

为什么输出是37?谁能解释一下?我是java的初学者

2 个答案:

答案 0 :(得分:1)

检查java中的precedence of the operators

12+8/5%4*(5-4/5)+4*5
12+8/5%4*(5-0)+4*5
12+8/5%4*5+4*5
12+1%4*5+4*5
12+1*5+4*5
12+5+20
37

答案 1 :(得分:0)

你有:12+8/5%4*(5-4/5)+4*5

在user3134614的帖子中

12+8/5%4*(5-4/5)+4*5
12+8/5%4*(5-0)
12+8/5%4*5+4*5
12+1%4*5+4*5
12+1*5+4*5
12+5+20
37

你有基本的操作符

  • +添加两个数字
  • -减去两个数字
  • *将两个数字相乘
  • /除以两个数字

这些,更高级的

  • %获取两个数字的余数,即除以它们并获得余数,如果数字是偶数,则其余为零,如果是奇数,则为另一个编号

    例如,4%44除以4得到22 + 2 = 4,没有余数,另一方面5%4 = 1,因为2 + 2 = 4和超过1

  • 括号()将数学表达式分开并将其作为单个数量返回,例如

    5 - (3-2) * 2相当于5 - (1) * 2 = 5 - 2 = 3

然后

12+8/5%4*(5-4/5)+4*5
12+8/5%4*(5-0) is 12+8/5%4*(5 - (4/5) = 0.8, but converted to integer is 0, then 5 - 0 = 5)
12+8/5%4*5+4*5 is 12+ (8/5 = 1.6, but to integer is 1) %4*5+4*5
12+1%4*5+4*5 is 12+ (1%4 = 1 (1 is different of 4 then result is 1)) *5+4*5
12+1*5+4*5 is 12 + (1*5 = 5) + (4*5 = 20)
12+5+20 and 12 + 5 + 20 = 37
37