http://www.easymaths.com/What_on_earth_is_Bodmas.htm:
你认为2 + 3 x 5的答案是多少?
是(2 + 3) x 5 = 5 x 5 = 25吗?
还是2 + (3 x 5) = 2 + 15 = 17?
BODMAS可以帮助我们制定规则,以便我们始终获得正确的答案:
(B)括号 (O)顺序 (D)除法 (M)乘法 (A)加法 (S)减法
根据BODMAS,加法之前应该先进行乘法,因此根据BODMAS,17实际上是正确的答案,如果您输入2 + 3 x 5,计算器也会给出这个答案。
在编程中为什么有用?不确定,但我认为这是因为可以消除一些括号吗?我是一个相当保守的程序员,所以我的代码可能看起来像这样:
result = (((i + 4) - (a + b)) * MAGIC_NUMBER) - ANOTHER_MAGIC_NUMBER;
使用BODMAS规则可以让这个问题更加明晰:
result = (i + 4 - (a + b)) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER;
我认为我仍然会使用第一种变体 - 多一些括号,但这样我就不必再学习另一个规则,也可以避免遗忘并导致那些难以调试的奇怪错误?
只是猜测那个部分。
Mike Stone编辑:根据Gaius的指出修正了数学问题。
这个助记符在学校很有用,今天在编程中仍然很有用。另一个版本是(在中学时)“请原谅我亲爱的阿姨萨莉”。
(i + 4) - (a + b)
为了
(i + 4 - a + b)
((i + 4) - (a + b)) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER;
或者
(i + 4 - a - b) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER;
foo * (bar + baz^2 / foo)
当我在加拿大上小学时,学习这个知识点时被称为BEDMAS:
Brackets(括号)
Exponents(指数)
Division(除法)
Multiplication(乘法)
Addition(加法)
Subtraction(减法)
仅供来自该地区的人参考...
我不确定旧的BODMAS记忆法在编程中有多少适用性。语言之间的操作顺序没有保证,虽然许多语言按照标准操作顺序进行,但并非所有语言都是如此。还有一些语言,操作顺序并不是很有意义(例如Lisp方言)。从某种意义上说,如果您忘记标准顺序并使用括号来表示所有内容(例如(a * b)+ c),或者特别学习每种语言的顺序,那么您在编程方面可能会更好。