MST

星途 面试题库

面试题:Swift中运算符优先级与结合性实践

请编写一个Swift程序,展示如何利用运算符优先级和结合性来计算复杂数学表达式,比如 (3 + 5) * 2 / (4 - 1),并解释程序中每个运算符的优先级和结合性是如何影响最终结果的。
28.0万 热度难度
编程语言Swift

知识考点

AI 面试

面试题答案

一键面试
let result = (3 + 5) * 2 / (4 - 1)
print(result)

在这个表达式 (3 + 5) * 2 / (4 - 1) 中:

  1. 括号:括号具有最高优先级,所以先计算 (3 + 5)(4 - 1),分别得到 83。这里括号改变了运算符的默认优先级顺序,使得括号内的运算先进行。
  2. 乘法和除法:乘法 * 和除法 / 具有相同优先级,它们的结合性是从左到右。所以先计算 8 * 2 得到 16,再计算 16 / 3 得到最终结果约 5.33(在Swift中如果是整数运算则结果为5,这里实际运算结果是浮点数 5.333...)。
  3. 加法和减法:加法 + 和减法 - 在没有括号改变优先级的情况下,优先级低于乘法和除法。但在这个表达式中,由于括号的存在,先进行了这部分运算。