Ios 快速区分清除(C)和全部清除(AC)
你好,我是一个初学者,我正在建立一个RPN计算器。 我的所有操作都在一个名为calcengine的独立viewcontroller中执行。 我有一些空调代码,我有两个问题:Ios 快速区分清除(C)和全部清除(AC),ios,swift,calculator,rpn,Ios,Swift,Calculator,Rpn,你好,我是一个初学者,我正在建立一个RPN计算器。 我的所有操作都在一个名为calcengine的独立viewcontroller中执行。 我有一些空调代码,我有两个问题: @IBAction func AllClear(sender: UIButton) { userHasStartedTyping = false labelDisplay.text = "\(0)" self.calcEngine!.operandStack.removeAll() } 以下是
@IBAction func AllClear(sender: UIButton) {
userHasStartedTyping = false
labelDisplay.text = "\(0)"
self.calcEngine!.operandStack.removeAll()
}
以下是viewcontroller中的计算代码:
@IBAction func operation(sender: UIButton) {
let operation = sender.currentTitle!
if userHasStartedTyping {
Enter()
}
self.displayValue = (self.calcEngine?.operate(operation))!
Enter()
}
以及calcengine中的计算代码:
class CalculatorEngine: NSObject
{
var operandStack = Array<Double>() //array
func updateStackWithValue(value: Double)
{ self.operandStack.append(value) }
func operate(operation: String) ->Double
{ switch operation
{
case "×":
if operandStack.count >= 2 {
return self.operandStack.removeLast() * self.operandStack.removeLast()
}
case "÷":
if operandStack.count >= 2 {
return self.operandStack.removeFirst() / self.operandStack.removeLast()
}
case "+":
if operandStack.count >= 2 {
return self.operandStack.removeLast() + self.operandStack.removeLast()
}
case "−":
if operandStack.count >= 2 {
return self.operandStack.removeFirst() - self.operandStack.removeLast()
}
default:break
}
return 0.0
}
}
class CalculatorEngine:NSObject
{
var operandStack=Array()//数组
func updateStackWithValue(值:双精度)
{self.operandStack.append(value)}
func操作(操作:字符串)->Double
{开关操作
{
案例“×”:
如果操作数Stack.count>=2{
返回self.operanstack.removeLast()*self.operanstack.removeLast()
}
案例“÷”:
如果操作数Stack.count>=2{
返回self.operanstack.removeFirst()/self.operanstack.removeLast()
}
格“+”:
如果操作数Stack.count>=2{
返回self.operanstack.removeLast()+self.operanstack.removeLast()
}
案例”−":
如果操作数Stack.count>=2{
返回self.operanstack.removeFirst()-self.operanstack.removeLast()
}
默认值:中断
}
返回0.0
}
}
@IBAction func Clear(sender: UIButton)
{
userHasStartedTyping = false
labelDisplay.text = "\(0)"
}
1) 因为我们不知道你是如何计算的,所以我们不能确定。2)代码取决于差异是什么。这个问题可能太广泛了。@Abizern我刚刚编辑了这个问题:)如果你能看一看……非常感谢