有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数学算术运算

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

为什么产量是37?有人能解释一下吗?我是java的初学者


共 (2) 个答案

  1. # 1 楼答案

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

    在用户3134614的帖子中

    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

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

      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
    
  2. # 2 楼答案

    检查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