Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026

    Gestione errore menu' in java

    Buona sera a tutti.
    Ho un piccolo quesito da risolvere.
    Praticamente ho costruito un menu' con il costrutto switch case, solo che se non digito corretamente la lettera per la selezione della voce che voglio usare passa subito a default e poi mi fa uscire dal progamma e chiude la console.
    Volevo creare una gestione dell' errore che sè digito male mi dice che ho digitato male e che devo riprovare ma che però mi dà di nuovo la possibilità di scegliere tra le voci del menu'.
    Vi posto il codice:
    switch(i) {
    case 'a': // Qui viene inserito il carattere 'a' tra gli apici come si vede
    System.out.println("hai scelto di fare la somma");
    Somma addiziona = new Somma();
    addiziona.SommaOne(); // oggetto addiziona.metodo SommaOne
    addiziona.stampa(); // oggetto addiziona.metodo stampa
    System.out.println();
    break;
    case 98: // qui viene inserito il codice ASCII per la lettera b
    System.out.println("hai scelto di fare la differenza");
    Differenza secondo = new Differenza();
    secondo.DifferenzaOne();
    secondo.stampa();
    System.out.println();
    break;
    case 99: // codice ASCII per la lettera c
    System.out.println("hai scelto di fare la moltiplicazione");
    Moltiplicazione moltiplica = new Moltiplicazione();
    moltiplica.MoltiplicazioneOne();
    moltiplica.stampa();
    System.out.println();
    break;
    case 100: // codice ASCII per la lettera d
    System.out.println("hai scelto di fare la divisione");
    Divisione divisione = new Divisione();
    divisione.DivisioneOne();
    divisione.stampa();
    System.out.println();
    break;
    case 101: // codice ASCII per la lettera e
    System.out.println("hai scelto di uscire dal programma");
    System.out.println("grazie di aver usato JaMax");
    break;
    default:
    System.out.println("hai digitato male riprova");
    }
    Grazie per un qualsiasi consiglio.

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Non hai pensato di inserire il tuo switch all'interno di un ciclo do-while?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Ho provato a mettere lo switch dentro ad un ciclo do while ma non riesco a farlo funzionare correttamente.
    Potresti fornirmi un esempio pratico che mi possa aiutare.
    Grazie.

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Ironmax
    Ho provato a mettere lo switch dentro ad un ciclo do while ma non riesco a farlo funzionare correttamente.
    Potresti fornirmi un esempio pratico che mi possa aiutare.
    Grazie.
    codice:
    boolean error;
    
    do {
      error = false;
    
      switch (i) {
        ...
    
        default:
            System.err.println("Errore!");
            error = true;
      }
    } while (error);
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Si ho provato come hai postato tu solo che poi parte un ciclo infinito e continua a darmi sempre errore, ti riposto il mio codice:
    Immagini allegate Immagini allegate

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Ironmax
    Si ho provato come hai postato tu solo che poi parte un ciclo infinito e continua a darmi sempre errore, ti riposto il mio codice:
    Boh, probabilmente hai sbagliato qualcosa nel resto del programma. Io ho appena provato questo e mi funziona correttamente:

    codice:
    import java.util.Scanner;
    
    public class Test {
        public static void main(String[] args) {
            int i;
            boolean error;
            
            Scanner s = new Scanner(System.in);
    
            do {
                error = false;
                
                System.out.print("Inserisci 1 o 2: ");
                i = s.nextInt();
                
                switch (i) {
                    case 1:
                    case 2:
                        System.out.println("OK!");
                        break;
                         
                    default:
                        System.err.println("Non va bene!");
                        error = true;
                }
            } while (error);
        }
    }
    Questo è l'output:

    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Ok ora funziona grazie.

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    @Ironmax: per mantenere indentato e leggibile il codice, non è necessario postare un'immagine, ma, come descritto nel regolamento al punto 6, è sufficiente utilizzare gli appositi tag CODE.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Grazie leleFT del tuo suggerimento.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.