编程基础
完成条件
概述
运算顺序(或运算符优先级)是一组规则,反映了在评估给定数学表达式时应首先执行哪些操作。
讨论
单一的数值本身是重要的;然而,我们需要一种方法来操作这些值(处理数据)。科学家们希望有一种准确的机器来操作数值,他们希望这台机器能够处理数字或计算答案(即计算结果)。在1950年前,字典中的计算机定义是“执行计算的人类”。因此,所有描述数据操作的术语都是以数学为导向的。此外,两个基本的数据类型族(整数族和浮点族)完全由数字值组成。
带评估的表达式示例
让我们看一个例子:2 + 3 * 4 + 5 这个表达式,结果是多少?
- "+" 表示加法, "*" 表示乘法,这些是我们的运算符。
- 2、3、4 和 5 是我们的操作数。
- 优先级规则表明乘法优先于加法。
- 因此,我们首先计算 3 * 4 得到 12。
- 现在我们有:2 + 12 + 5。
- 结合性规则表明加法从左到右进行,因此我们计算 2 + 12 得到 14。
- 现在我们有:14 + 5。
- 最后,我们计算 14 + 5 得到 19;这就是表达式的值。
括号会改变结果。比如 (2 + 3) * (4 + 5) 结果是 45。
括号也会改变结果。比如 (2 + 3) * 4 + 5 结果是 25。
运算符优先级图表
每种计算机语言都有一些定义优先级和结合性的规则。它们通常遵循我们可能已经学过的规则。乘法和除法优先于加法和减法,这是我们在小学学过的规则,这个规则仍然有效。
运算顺序:
- 括号
- 指数
- 乘法 / 除法
- 加法 / 减法
一个常见的助记法是 PEMDAS(Please Excuse My Dear Aunt Sally)。优先级规则可能在不同编程语言之间有所不同。你应该参考你正在使用的编程语言的参考表,通常这些表格被称为运算符优先级表、运算符优先级图表或运算顺序图表。在评估表达式时,按照需要查看这些图表。
有效表达式
有效表达式由操作数和运算符组成,并且按正确的方式组合。为什么是 (s)?因为某些运算符是:
- 单目运算符 – 只有一个操作数
- 双目运算符 – 具有两个操作数,分别位于运算符的两侧
- 三目运算符 – 有两个运算符符号,分隔三个操作数
大多数运算符是双目运算符,也就是说它们需要两个操作数。一些优先级图表会指明哪些运算符是单目和三目的,其他的则是双目的。
关键术语
- 结合性(associativity):决定了同一优先级的运算符如何顺序操作操作数。
- 评估(evaluation):将运算符应用于操作数并得到一个单一结果的过程。
- 表达式(expression):由操作数和运算符按正确顺序组成,最终简化(或评估)为一个单一值。
- 操作数(operand):接受运算符作用的值。
- 运算符(operator):一种语言特定的语法符号(通常是符号),用于对一个或多个操作数执行操作。
- 括号(parentheses):改变表达式中运算的顺序。先做括号中的部分。
- 优先级(precedence):决定了运算符如何顺序操作操作数。
参考文献
- cnx.org: 《编程基础 - 使用 C++ 的模块化结构化方法》
- Wikipedia: 运算顺序
- Wikipedia: 运算顺序
最后修改: 2025年01月10日 星期五 14:57