From e5d32762ca1ba99c2231e28efd428b6fa5ed1aab Mon Sep 17 00:00:00 2001 From: Sebastian Steger Date: Mon, 13 Oct 2025 12:45:32 +0200 Subject: [PATCH] solution calculator --- go/01-basics/calculator.go | 48 ++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/go/01-basics/calculator.go b/go/01-basics/calculator.go index 7686df8..19af19d 100644 --- a/go/01-basics/calculator.go +++ b/go/01-basics/calculator.go @@ -5,18 +5,46 @@ import ( ) func main() { + const ( + add = "add" + subtract = "subtract" + multiply = "multiply" + divide = "divide" + exit = "exit" + ) - //TODO: implement according to README.md + fmt.Println("Welcome to the Simple Calculator!") + for { + var operation string + fmt.Print("\nEnter operation (add, subtract, multiply, divide, exit): ") + fmt.Scan(&operation) - //the following code just demonstrates how to use fmt.Scan + if operation == exit { + fmt.Println("Goodbye!") + break + } - var str string - fmt.Print("Please enter a string: ") - fmt.Scan(&str) + var num1, num2 float64 + fmt.Print("Enter the first number: ") + fmt.Scan(&num1) + fmt.Print("Enter the second number: ") + fmt.Scan(&num2) - var x float64 - fmt.Print("Please enter a float: ") - fmt.Scan(&x) - - fmt.Printf("You entered '%s' and %f\n", str, x) + switch operation { + case add: + fmt.Printf("Result: %.2f\n", num1+num2) + case subtract: + fmt.Printf("Result: %.2f\n", num1-num2) + case multiply: + fmt.Printf("Result: %.2f\n", num1*num2) + case divide: + if num2 == 0 { + fmt.Println("Error: Division by zero is not allowed!") + } else { + fmt.Printf("Result: %.2f\n", num1/num2) + } + default: + fmt.Println("Invalid operation. Please try again.") + } + } }