Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Java] "menu' che cicla"

    Salve a tutti, non sapevo come riassumere la situazione in quel titolo perchè la cosa è un po' ambigua

    ho scritto un po' di codice per un esercizio per l'università e poi mi sono detto: "ma se volessi andare avanti col programma e fare altre prove devo ogni volta rimandare in esecuzione il programma??", allora ho messo tutto il codice dentro ad un ciclo do-while che continua a ciclare finchè l'utente non scrive 0 quando richiesto.
    Il problema è proprio quel valore, mi spiego: la variabile dove viene salvato il valore che l'utente inserisce è di tipo string (perchè potrebbe scrivere qualasiasi cosa...) e questo viene confrontato col la stringa "0". Ecco il codice:
    codice:
    string scelta;
    do
    {
    ... tante belle cose xD
    ...
    System.out.print("0 per uscire: ");
    scelta = SavitchIn.readLine();
    }while(!scelta.equals("0"));
    ci sono modi più intelligenti per farlo? perchè fatto così mi sembra poco pratico...

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da mastodilu Visualizza il messaggio
    ci sono modi più intelligenti per farlo? perchè fatto così mi sembra poco pratico...
    Quello che hai fatto è assolutamente corretto tecnicamente e anche sensato. Non c'è nulla di sbagliato di per sé.
    Poi scusa "poco pratico" in che senso?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Poi scusa "poco pratico" in che senso?
    Nel senso che, indipendentemente dalla lunghezza del programma, devo lasciare tutto dentro ad un blocco di codice.
    Non potrei ad esempio risolvere con un if(scelta) goto inizio o un qualcosa del genere?
    Tutti i miei professori mi hanno sempre "proibito" di usare queste istruzioni tipo break o goto, mi hanno fatto usare solo switch in rari casi.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da mastodilu Visualizza il messaggio
    Nel senso che, indipendentemente dalla lunghezza del programma, devo lasciare tutto dentro ad un blocco di codice.
    Non potrei ad esempio risolvere con un if(scelta) goto inizio o un qualcosa del genere?
    Tutti i miei professori mi hanno sempre "proibito" di usare queste istruzioni tipo break o goto, mi hanno fatto usare solo switch in rari casi.
    Sì, devi avere tutto logicamente dentro un ciclo ... ma non necessariamente devi mettere fisicamente tutto quanto, tutta la gestione di tutte le operazioni dentro un unico metodo! Anzi ... spezza che è meglio.

    goto è una keyword riservata di Java ma non ha alcuna funzione e non serve a nulla. È solo una parolina riservata, che non puoi usare (nemmeno come identificatore ... vale per tutte le keyword). Il break invece è utilizzabile, non è affatto proibito e se usato con giudizio, ha senso.

    Esempio abbozzato di menù (usa Java 7 per lo switch su stringhe):

    codice:
    public static void menu() {
        String scelta;
    
        do {
            System.out.println("1) fai xxx");
            System.out.println("2) fai yyy");
            System.out.println("0) esci");
            System.out.print(">> ");
    
            scelta = // ....input.....
    
            switch (scelta) {
            case "1": operazione1(); break;
            case "2": operazione2(); break;
            }
        } while (!scelta.equals("0"));
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    ok perfetto, ti ringrazio per la dritta!

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.