我知道如何轻松制作一个计算器,用单个运算符处理两个或三个操作数(乘以或除以或 ...)。
但是如何编写一个处理正常语法和多个操作数的句子,比如6 * 6 / 3 + 2
或者可能只是他们的反向抛光符号6 6 * 3 / 2 +
答案 0 :(得分:0)
您可以创建一个相当简单的递归下降解析器,它可以解析任意复杂的算术表达式。解析器生成表达式的树表示,其表示算术的各种优先级/关联性规则。
树的节点将是操作(*,/,+, - ),叶子将是数字。
然后评估表达式就是走树并从下往上评估每个节点,直到你到达最终结果的顶部。
Google将提供大量使用各种语言执行此操作的示例。