Android项目
- 多项式四则运算
- 撤销
请按照数字 运算符 数字 运算符 数字 运算符 ... 数字
的结构键入,在键入等于
当然你也可以不按照这样输入,在键入等于
之后提示错误
我通过mutableListOf
创建list
来存放所有数字
和运算符
,同时负责显示到TextView
,每一次点击按钮都将添加相应的一个元素到list
中,撤销一个最近的一个操作即删除list
最后一个元素。
这些逻辑都不难,比较难的逻辑是等于操作,首先在执行等于之前我要判断等于号是否符合数字 运算符 数字 运算符 数字 运算符 ... 数字
格式,通过求余和类型比较来判断,不符合的执行相应操作后使用return
结束,符合的将继续执行。四则运算有优先级,所以我将二级运算转换为一级运算,即将所有的乘除先算完,再算余下部分。如何先计算乘除?首先要定位到奇数位置的乘除乘操作符,然后使前后运算,这样三个元素就会得到一个结果,将这个结果放置最前,然后删除余下两个数,这时候后面的元素下标也会减小2。当都这样处理之后,就只剩下加法运算,按照从前到后顺序运算即可。