【问题标题】:Precedence of basic mathematical operators基本数学运算符的优先级
【发布时间】:2012-07-25 20:52:19
【问题描述】:
int a = 100,b = 3,c = 8,d = 6;
System.out.println(a - d * b + c);

答案是 90。

这个计算是怎么做的?

【问题讨论】:

标签: java operator-precedence


【解决方案1】:

BODMAS 规则用于评估表达式。

  1. d*b = 18
  2. “+”和“-”具有相同的优先级。但是“-”在左边首先出现。 SO 100 - 18 = 82
  3. 然后是 82 + 8 = 90。

【讨论】:

    【解决方案2】:
    a - (d * b) + c 
    100 - 18 + 8 = 90
    

    【讨论】:

      【解决方案3】:

      * 具有更高的优先级,因此将首先计算乘法

      所以

      6*3 将首先得到评估

      100- 18 + 8 = 90

      【讨论】:

        【解决方案4】:

        这是第一堂课的数学。

        *+ 之前

        所以第一步是6 * 3,然后是100 - 18 + 8 = 90

        【讨论】:

          【解决方案5】:
          • 乘除 - 同等对待,但优先于 加法和减法

          • 加减 - 同等对待,但优先级低于 乘除法

          按照上面的规则我们先乘然后加/减。所以结果是90。

          【讨论】:

            【解决方案6】:
            a - (d * b) + c
            = 100 - (6 * 3) + 8
            = 100 - 18 + 8
            = 100 - 10
            = 90
            

            【讨论】:

              【解决方案7】:
              100-6*3+8 = 100-18+8 = 100-10 = 90
              

              或者你的意思是什么?

              【讨论】:

                【解决方案8】:

                1. * 具有更高的优先级。所以,

                a - 6 * 3 + c => a - 18 + c
                

                2. + 的优先级高于 -。所以,

                a - 18 + 8 =>  a - 10
                

                3.最后。

                100 - 10  => 90 
                

                所以输出应该是 90。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-07-07
                  • 2015-03-20
                  • 1970-01-01
                  相关资源
                  最近更新 更多