forked from steger/pr3-sose2026
implemented the calculator exercise and moved "go.mod"
parent
b5345c8838
commit
90244f2511
|
|
@ -0,0 +1,64 @@
|
|||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
|
||||
const add string = "add"
|
||||
const sub string = "subtract"
|
||||
const mul string = "multiply"
|
||||
const div string = "divide"
|
||||
const eql string = "equal"
|
||||
|
||||
var result float64 = 0
|
||||
var temp_num_input float64
|
||||
var op_input string
|
||||
|
||||
fmt.Println("Bite geben Sie eine Zahl ein:")
|
||||
fmt.Scanf("%f", &result)
|
||||
|
||||
main_loop:
|
||||
for {
|
||||
|
||||
fmt.Println("Bitte geben sie nun den entsprechenden Operator ein:")
|
||||
fmt.Println("Mögliche Operatoren sind \"add\", \"subtract\", \"multiply\", \"divide\" und \"equal\".")
|
||||
fmt.Println("Alternativ können sie auch \"+\", \"-\", \"*\", \"/\" oder \"=\" verwenden.")
|
||||
fmt.Scanf("%s", &op_input)
|
||||
|
||||
if op_input == eql || op_input == "=" {
|
||||
fmt.Println("Ihr Ergebnis ist:", result)
|
||||
break
|
||||
}
|
||||
|
||||
fmt.Println("Bitte geben Sie nun Ihre nächste Zahl ein:")
|
||||
fmt.Scanf("%f", &temp_num_input)
|
||||
|
||||
switch op_input {
|
||||
|
||||
case add, "+":
|
||||
result += temp_num_input
|
||||
|
||||
case sub, "-":
|
||||
result -= temp_num_input
|
||||
|
||||
case mul, "*":
|
||||
result *= temp_num_input
|
||||
|
||||
case div, "/":
|
||||
if temp_num_input == 0 {
|
||||
fmt.Println("Es entstand ein \"division by zero\" error!")
|
||||
fmt.Println("Die aktuelle Berechnung wird abgebrochen...")
|
||||
break main_loop
|
||||
}
|
||||
|
||||
result /= temp_num_input
|
||||
|
||||
default:
|
||||
fmt.Println("Sie haben einen ungüligen Operator eingegeben!\r")
|
||||
fmt.Println("Die aktuelle Berechnung wird abgebrochen...")
|
||||
break main_loop
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Println("Für eine neue Berechnung starten Sie das Programm bitte neu.")
|
||||
}
|
||||
Loading…
Reference in New Issue