From 369eb89ea18250bad1b3ef73280b7683ee1c6f93 Mon Sep 17 00:00:00 2001 From: seth Date: Mon, 3 Jul 2023 23:54:18 -0400 Subject: initial commit --- src/calculator.swift | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/calculator.swift (limited to 'src/calculator.swift') diff --git a/src/calculator.swift b/src/calculator.swift new file mode 100644 index 0000000..dfd4c4c --- /dev/null +++ b/src/calculator.swift @@ -0,0 +1,41 @@ +enum InvalidOperatorError: Error { + case operatorNotSupported +} + +func calculate(operatorThing: String, number1: Float, number2: Float) throws -> Float { + switch operatorThing { + case "+": + return number1 + number2 + case "-": + return number1 - number2 + case "/": + return number1 / number2 + case "*": + return number1 * number2 + default: + throw InvalidOperatorError.operatorNotSupported + } +} + + +func main() { + print("enter a number:") + let number1 = Float(readLine()!)! + print("enter an operator:") + let operatorThing = readLine()! + print("enter another number:") + let number2 = Float(readLine()!)! + + do { + let result = try calculate(operatorThing: operatorThing, number1: number1, number2: number2) + print(result) + } catch InvalidOperatorError.operatorNotSupported { + print("invalid operator!") + return + } catch { + print("unexpected error!") + return + } +} + +main() -- cgit v1.2.3