改名成 tempFormula 比較短

This commit is contained in:
2020-05-06 09:43:57 +08:00
parent 7c79f3af90
commit 6fff73b8b6

View File

@@ -27,55 +27,54 @@ class Calculator {
return "" return ""
} }
var calculatingFormula = formula var tempFormula = formula
if ["+", "-", "×", "÷"].firstIndex(of: calculatingFormula.last!) != nil { if ["+", "-", "×", "÷"].firstIndex(of: tempFormula.last!) != nil {
calculatingFormula.removeLast() tempFormula.removeLast()
} }
while true { while true {
let indexOf乘號 = calculatingFormula.firstIndex(of: "×") let indexOf乘號 = tempFormula.firstIndex(of: "×")
let indexOf除號 = calculatingFormula.firstIndex(of: "÷") let indexOf除號 = tempFormula.firstIndex(of: "÷")
if indexOf乘號 == nil && indexOf除號 == nil { if indexOf乘號 == nil && indexOf除號 == nil {
break break
} }
if indexOf乘號 != nil && (indexOf除號 == nil || indexOf乘號! < indexOf除號!) { if indexOf乘號 != nil && (indexOf除號 == nil || indexOf乘號! < indexOf除號!) {
let number1 = Double(calculatingFormula[indexOf乘號! - 1])! let number1 = Double(tempFormula[indexOf乘號! - 1])!
let number2 = Double(calculatingFormula[indexOf乘號! + 1])! let number2 = Double(tempFormula[indexOf乘號! + 1])!
calculatingFormula[indexOf乘號! - 1] = String(number1 * number2) tempFormula[indexOf乘號! - 1] = String(number1 * number2)
calculatingFormula.remove(at: indexOf乘號! + 1) tempFormula.remove(at: indexOf乘號! + 1)
calculatingFormula.remove(at: indexOf乘號!) tempFormula.remove(at: indexOf乘號!)
} }
if indexOf除號 != nil && (indexOf乘號 == nil || indexOf除號! < indexOf乘號!) { if indexOf除號 != nil && (indexOf乘號 == nil || indexOf除號! < indexOf乘號!) {
let number1 = Double(calculatingFormula[indexOf除號! - 1])! let number1 = Double(tempFormula[indexOf除號! - 1])!
let number2 = Double(calculatingFormula[indexOf除號! + 1])! let number2 = Double(tempFormula[indexOf除號! + 1])!
calculatingFormula[indexOf除號! - 1] = String(number1 / number2) tempFormula[indexOf除號! - 1] = String(number1 / number2)
calculatingFormula.remove(at: indexOf除號! + 1) tempFormula.remove(at: indexOf除號! + 1)
calculatingFormula.remove(at: indexOf除號!) tempFormula.remove(at: indexOf除號!)
} }
} }
while calculatingFormula.count > 1 { while tempFormula.count > 1 {
let number1 = Double(calculatingFormula[0])! let number1 = Double(tempFormula[0])!
let number2 = Double(calculatingFormula[2])! let number2 = Double(tempFormula[2])!
if calculatingFormula[1] == "+" { if tempFormula[1] == "+" {
calculatingFormula[0] = String(number1 + number2) tempFormula[0] = String(number1 + number2)
} else { } else {
calculatingFormula[0] = String(number1 - number2) tempFormula[0] = String(number1 - number2)
} }
calculatingFormula.remove(at: 2) tempFormula.remove(at: 2)
calculatingFormula.remove(at: 1) tempFormula.remove(at: 1)
} }
if Double(calculatingFormula.last!)!.truncatingRemainder(dividingBy: 1) == 0 { if Double(tempFormula.last!)!.truncatingRemainder(dividingBy: 1) == 0 {
var number = calculatingFormula.popLast()! var number = tempFormula.popLast()!
number.removeLast() number.removeLast()
number.removeLast() number.removeLast()
calculatingFormula.append(number) tempFormula.append(number)
} }
print(calculatingFormula) return tempFormula.last!
return calculatingFormula.last!
} }
} }