BODMAS ルールでは、演算の順序は括弧、順序、除算、乗算、加算、および減算です。ここで、除算、乗算、加算、および減算は、減分、増分、増分、および減分の順序に従っています。BODMAS 規則シリーズは同じ順序に従っていません。私の質問は、足し算の後に引き算が続くのに、引き算の後に足し算が続かない理由です。
3 に答える
乗算/除算と加算/減算は同じレベルの優先順位にあるため、BODMAS または BOMDSA はまったく同じです (実際にはB O DM AS
、さまざまなグループ内で任意の順序で、 としてより正確に記述する必要があります)。関連するウィキペディアのページで述べたように:
これらのニーモニックは、このように記述すると誤解を招く可能性があります。特に、乗算と除算、および加算と減算が同等の優先順位であることをユーザーが認識していない場合はなおさらです。
言い換えれば、あなたが見逃しているのは、通常(数学を「手動で」行う場合と、適切なプログラミング言語で行う場合の両方)、演算子は実際には優先順位のクラスによってグループ化され、乗算と除算は同じ優先順位を持つということです(合計と減算)。したがって、「BODMAS ルール」は実際には次のようになります。
()
**
* /
+ -
(私**
は累乗演算子として使用します - Python のように - Java には指数演算子がありません。また、() は演算子ではなくグループ化記号です)
同じ行の演算子の優先順位は、式内の順序と結合規則 (算術演算子の場合は左から右ですが、べき乗は明確に定義されていません) によって決まります。
実数の数学では、除算について話さない限り、これは実際には関係ありませんが (減算を「反対の加算」と見なす場合、加算と減算は連想されます)、プログラミングでは二重に重要です。多くの場合、関連付けられていません。
また、プログラミング言語は、結合/可換ではなく、結合性が異なり、優先順位規則があまり確立されていない、より多くの演算子を提供するため、より洗練された方法で演算子の優先順位の規則を指定するのが普通です。
たとえば、Java の演算子の優先順位と結合規則の表を参照してください。単純な「BODMAS 規則」よりもはるかに複雑であり、正しく表現するには不十分です (多くのクラスがあり、各クラスにより多くの演算子があり、結合規則が異なるクラスがあるため、. ..)。