計算乘除的結果

This commit is contained in:
2020-05-06 09:02:57 +08:00
parent 928396d516
commit 27b7669ba1

View File

@@ -20,7 +20,51 @@ class Calculator {
return result
}
}
var result = ""
var result: String {
get {
if formula.count < 3 {
return ""
}
var calculatingFormula = formula
if ["+", "-", "×", "÷"].firstIndex(of: calculatingFormula.last!) != nil {
calculatingFormula.removeLast()
}
while true {
let indexOfMultiplication = calculatingFormula.firstIndex(of: "×")
let indexOfDivision = calculatingFormula.firstIndex(of: "÷")
if indexOfMultiplication == nil && indexOfDivision == nil {
break
}
if indexOfMultiplication != nil {
if indexOfDivision == nil || indexOfMultiplication! < indexOfDivision! {
let number1 = Double(calculatingFormula[indexOfMultiplication! - 1])!
let number2 = Double(calculatingFormula[indexOfMultiplication! + 1])!
calculatingFormula[indexOfMultiplication! - 1] = String(number1 * number2)
calculatingFormula.remove(at: indexOfMultiplication! + 1)
calculatingFormula.remove(at: indexOfMultiplication!)
continue
}
}
if indexOfDivision != nil {
if indexOfMultiplication == nil || indexOfDivision! < indexOfMultiplication! {
let number1 = Double(calculatingFormula[indexOfDivision! - 1])!
let number2 = Double(calculatingFormula[indexOfDivision! + 1])!
calculatingFormula[indexOfDivision! - 1] = String(number1 / number2)
calculatingFormula.remove(at: indexOfDivision! + 1)
calculatingFormula.remove(at: indexOfDivision!)
continue
}
}
}
print(calculatingFormula)
return calculatingFormula[0]
}
}
func click(_ text: String) {
switch text {