計算乘除的結果
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user