go_winter_2024/internal/simple_caluculator.go
Ivan Titov 990e803a14
All checks were successful
Test Go Action / use-go-action (push) Successful in 7s
save
2025-02-10 21:43:38 +03:00

60 lines
1.2 KiB
Go

package internal
import "fmt"
var operators []string = []string{"+", "-", "*", "/"}
func Run() {
var x, y int
var operator string
fmt.Println("Введите первое число")
_, err := fmt.Scan(&x)
if err != nil {
fmt.Printf("Некорректное число.\n")
return
}
fmt.Println("Введите операцию (+,-,*,/)")
fmt.Scan(&operator)
if !isExistOperato(operator) {
fmt.Printf("Некоректная операция.\n")
return
}
fmt.Println("Введите второе число")
_, err = fmt.Scan(&y)
if err != nil {
fmt.Printf("Некорректное число.\n")
return
}
calculate(x, y, operator)
}
func isExistOperato(operatop string) bool {
for _, op := range operators {
if op == operatop {
return true
}
}
return false
}
func calculate(x, y int, oprator string) {
switch oprator {
case "+":
fmt.Printf("%d + %d = %d\n", x, y, x+y)
case "-":
fmt.Printf("%d - %d = %d\n", x, y, x-y)
case "*":
fmt.Printf("%d * %d = %d\n", x, y, x*y)
case "/":
if y == 0 {
fmt.Println("Ошибка: деление на 0 невозможно")
return
}
fmt.Printf("%d + %d = %f\n", x, y, float64(x)/float64(y))
}
}