All checks were successful
Test Go Action / use-go-action (push) Successful in 7s
60 lines
1.2 KiB
Go
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))
|
|
}
|
|
|
|
}
|