改名成 tempFormula 比較短
This commit is contained in:
@@ -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!
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user