写在前面
首先祝各位除夕快乐!
在寒假已经过半的现在,本想写个游戏程序的我因为各种各样的琐事迟迟未能动工。于是想至少在年前写点什么。恰逢前段时间看了个介绍递归的网课,便心血来潮,想要写一个以递归实现四则运算表达式自动求值的程序。于是开始动工。
本程序启发自Mooc 郭炜老师的北京大学《程序设计与算法(二)算法基础》。
介于本人是编程初学者,因此本文很多地方可能会有概念性或者认知上的错误,在此也欢迎各位读者批评斧正。
本文由FlexLian编写,如有搬运请声明出处。版权所有,仿冒必究。
程序说明
本程序以递归实现四则运算表达式的自动匹配求值。具备除数为零时的报错能力,有一定的实用性。总体采用面向对象的思想,将各大功能封装在两个类中。
对于一个四则运算表达式,我们可以将其视作 表达式(总体) -> 项 (每两个项之间由加或减连接)-> 因子 (每两个因子之间由乘或除连接) -> 子表达式 (由括号括起)-> …… 由此类推向下递推,因而可以以递归的形式获取总表达式的值。
以下是源代码
程序代码
import java.util.*;
public class Main {
private static Cin cin;
private static Scanner input = new Scanner(System.in);
private static class Cin { // 用于递归中获取表达