83 lines
1.8 KiB
Go
83 lines
1.8 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
func main() {
|
|
var operatore1, operatore2 float32
|
|
var exit bool
|
|
|
|
for !exit {
|
|
fmt.Print("Inserire il primo numero: ")
|
|
_, err := fmt.Scanf("%f", &operatore1)
|
|
|
|
if err != nil {
|
|
fmt.Println("\nValore non valido")
|
|
|
|
} else {
|
|
|
|
for !exit {
|
|
|
|
fmt.Print("Inserire il secondo numero: ")
|
|
_, err := fmt.Scanf("%f", &operatore2)
|
|
|
|
if err != nil {
|
|
fmt.Println("\nValore non valido")
|
|
} else {
|
|
exit = menu(operatore1, operatore2)
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
func menu(operatore1, operatore2 float32) bool{
|
|
var scelta uint8
|
|
var exit bool
|
|
|
|
for !exit {
|
|
|
|
fmt.Println("Inserire un'opzione")
|
|
fmt.Println("1. Addizione")
|
|
fmt.Println("2. Sottrazione")
|
|
fmt.Println("3. Moltiplicazione")
|
|
fmt.Println("4. Divisione")
|
|
fmt.Println("0. Esci")
|
|
fmt.Print("Scelta: ")
|
|
|
|
_, err := fmt.Scanf("%d", &scelta)
|
|
|
|
if err != nil {
|
|
fmt.Println("\nValore non valido")
|
|
|
|
} else {
|
|
|
|
switch scelta {
|
|
|
|
case 0:
|
|
exit = true
|
|
case 1:
|
|
fmt.Printf("%f + %f = %f\n", operatore1, operatore2, operatore1+operatore2)
|
|
case 2:
|
|
fmt.Printf("%f - %f = %f\n", operatore1, operatore2, operatore1-operatore2)
|
|
case 3:
|
|
fmt.Printf("%f * %f = %f\n", operatore1, operatore2, operatore1*operatore2)
|
|
case 4:
|
|
if operatore2 == 0 {
|
|
fmt.Println("Impossibile dividere per zero")
|
|
} else {
|
|
fmt.Printf("%f / %f = %f\n", operatore1, operatore2, operatore1/operatore2)
|
|
}
|
|
default:
|
|
fmt.Println("Opzione non valida")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
return exit
|
|
}
|