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 }