Calcolatrice Java con Switch Case per Operazioni Matematiche


Calcolatrice Scientifica - Spiegazione del Codice

Panoramica generale

Questo programma Java implementa una calcolatrice scientifica semplificata che permette di eseguire tre operazioni matematiche di base: somma, sottrazione e moltiplicazione. L'utente può scegliere quale operazione eseguire e inserire due numeri per ottenere il risultato.

Struttura del programma

Import e dichiarazioni iniziali

import java.util.Scanner;

Il programma importa la classe Scanner che serve per leggere l'input dell'utente dalla tastiera.

Variabili principali

All'inizio del metodo main vengono dichiarate le seguenti variabili:

  • Scanner input: oggetto per leggere i dati inseriti dall'utente
  • int num1 e int num2: i due numeri su cui eseguire l'operazione
  • int scelta: memorizza quale operazione l'utente vuole eseguire
  • int totale: contiene il risultato dell'operazione

Funzionamento del programma

1. Presentazione del menu

System.out.println("Calcolatrice scientifica");
System.out.println("1 -> somma, 2 -> sottrazione, 3 -> moltiplicazione");

Il programma mostra all'utente le opzioni disponibili:

  • 1 per la somma
  • 2 per la sottrazione
  • 3 per la moltiplicazione

2. Acquisizione dei dati

Il programma chiede all'utente di inserire:

  1. La scelta dell'operazione (1, 2 o 3)
  2. Il primo numero
  3. Il secondo numero

3. Esecuzione dell'operazione

Il programma utilizza un costrutto switch-case per eseguire l'operazione scelta:

switch(scelta){
    case 1: 
        // somma
        totale = num1 + num2;
        System.out.println("La somma di "+num1+" + "+num2+" e' "+totale);
        break;
    case 2:
        // sottrazione
        totale = num1 - num2;
        System.out.println("La differenza tra "+num1+" - "+num2+" e' "+totale);
        break;
    case 3: 
        // moltiplicazione
        totale = num1 * num2;
        System.out.println("Il prodotto tra "+num1+" * "+num2+" e' "+totale);
        break;
    default: 
        System.out.println("ERRORE: non hai inserito una scelta corretta");
}

Caratteristiche importanti

Switch vs If-Else

Il codice mostra due approcci per gestire le scelte multiple:

  • Versione commentata: utilizza if-else if-else
  • Versione attiva: utilizza switch-case

Entrambi gli approcci producono lo stesso risultato, ma il switch-case è spesso più leggibile quando si hanno molte opzioni.

Gestione degli errori

Il programma include la gestione di input non validi attraverso il caso default, che viene eseguito quando l'utente inserisce un numero diverso da 1, 2 o 3.

Parole chiave break

Ogni case termina con break per evitare che l'esecuzione continui nei casi successivi (fenomeno chiamato "fall-through").

Esempio di esecuzione

Se l'utente sceglie:

  • Operazione: 1 (somma)
  • Primo numero: 5
  • Secondo numero: 3

Il programma mostrerà: "La somma di 5 + 3 e' 8"

Limitazioni

  • Il programma accetta solo numeri interi
  • Gestisce solo tre operazioni di base
  • Non include la divisione (che richiederebbe controlli aggiuntivi per evitare la divisione per zero)
  • Esegue una sola operazione per volta

Codice realizzato

/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
 */
package calcolatricescientifica;

import java.util.Scanner;
/**
 *
 * @author perna.mario
 */
public class CalcolatriceScientifica {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
       int num1 = 0;
       int num2 = 0;
       int scelta;
       int totale = 0;

       System.out.println("Calcolatrice scientifica");
       System.out.println("1 -> somma, 2 -> sottrazione, 3 -> moltiplicazione");
       scelta = input.nextInt();

       // inserimento numero 1
       System.out.println("Inserisci il primo numero");
       num1 = input.nextInt();

       // inserimento numero 2
       System.out.println("Inserisci il secondo numero");
       num2 = input.nextInt();

       // implementazione delle operazioni
       /*
       if(scelta == 1){
           // somma
           totale = num1 + num2;
           System.out.println("La somma di "+num1+" + "+num2+" e' "+totale);
       }else if (scelta == 2){
           //sottrazione
           totale = num1 - num2;
           System.out.println("La differenza tra "+num1+" - "+num2+" e' "+totale);
       }else if (scelta == 3){
           //moltiplicazione
           totale = num1 * num2;
           System.out.println("Il prodotto tra "+num1+" * "+num2+" e' "+totale);
       }else{
           System.out.println("ERRORE: non hai inserito una scelta corretta");
       }*/

       // versione 2 usando lo switch / case
       switch(scelta){
           case 1: 
                // somma
                totale = num1 + num2;
                System.out.println("La somma di "+num1+" + "+num2+" e' "+totale);
                break;
           case 2:
                //sottrazione
                totale = num1 - num2;
                System.out.println("La differenza tra "+num1+" - "+num2+" e' "+totale);
                break;
           case 3: 
                //moltiplicazione
                totale = num1 * num2;
                System.out.println("Il prodotto tra "+num1+" * "+num2+" e' "+totale);
                break;
           default: 
                System.out.println("ERRORE: non hai inserito una scelta corretta");
       }
    }
}