diff options
| author | seth <[email protected]> | 2023-07-03 23:54:18 -0400 |
|---|---|---|
| committer | seth <[email protected]> | 2023-07-04 00:05:04 -0400 |
| commit | 369eb89ea18250bad1b3ef73280b7683ee1c6f93 (patch) | |
| tree | 8cc728a4db0e6431b5320295e0ddbdd9a6ab1d2b /src/calculator.swift | |
Diffstat (limited to 'src/calculator.swift')
| -rw-r--r-- | src/calculator.swift | 41 |
1 files changed, 41 insertions, 0 deletions
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() |
