Esercizio Java

di il
1 risposte

Esercizio Java

Salve a tutti, devo svolgere questo esercizio in Java. Ho 2 problemi:
1) Vorrei che il programma dopo aver fatto l'inserimento di un utente mostri di nuovo il menu per poter fare la stampa o un altro inserimento
2)Vorrei salvare in una lista per esempio gli elementi che inserisco
Qualcuno può aiutarmi? Grazie, vi posto il codice.
package persona;

import java.util.Scanner;

public class Persona {

    public static void main(String[] args) {
        
        Scanner input;
        input=new Scanner(System.in);
        
        String nome = null;
        String cognome = null;
        int eta=0;
        String sesso = null;
        String email = null;
        
        int scelta=0;
        String s;
        
        while((scelta<1)||(scelta>3))
        {
                System.out.println("Quale operazione vuoi eseguire?\n1 - Inserimento\n2 - Stampa\n3 - Esci");
                String s_tc=input.nextLine();
                try
                {
                    scelta=Integer.parseInt(s_tc);
                }
                catch(NumberFormatException e)
                {
                    System.out.println("Non hai inserito un numero" + e);
                }
            
        switch(scelta)
        {
            case 1:
                System.out.println("Inserisci il nome: ");
                s=input.nextLine();
                try
                {
                    nome=s;
                    //System.out.println("nome: " + nome);
                }
                catch(NumberFormatException e)
                {
                    System.out.println("Non hai inserito una stringa" + e);
                }
                System.out.println("Inserisci il cognome: ");
                s=input.nextLine();
                try
                {
                    cognome=s;
                    //System.out.println("cognome: " + cognome);
                }
                catch(NumberFormatException e)
                {
                    System.out.println("Non hai inserito una stringa" + e);
                }
                System.out.println("Inserisci l'età: ");
                s=input.nextLine();
                try
                {
                    eta=Integer.parseInt(s);
                    //System.out.println("cognome: " + cognome);
                }
                catch(NumberFormatException e)
                {
                    System.out.println("Non hai inserito un intero" + e);
                }
                System.out.println("Inserisci il sesso (M o F): ");
                s=input.nextLine();
                try
                {
                    sesso=s;
                    //System.out.println("cognome: " + cognome);
                }
                catch(NumberFormatException e)
                {
                    System.out.println("Non hai inserito una stringa" + e);
                }
                System.out.println("Inserisci indirizzo email: ");
                s=input.nextLine();
                try
                {
                    email=s;
                }
                catch(NumberFormatException e)
                {
                    System.out.println("Non hai inserito una stringa" + e);
                }
                break;
                
            case 2:
                                System.out.println("Nome: " + nome + "\nCognome: " + cognome + "\nEtà: " + eta + "\nSesso: " + sesso + "\nEmail: " + email);
                break;
        }
        }
        
    }
    
}

1 Risposte

  • Re: Esercizio Java

    MiriamG ha scritto:


    Salve a tutti, devo svolgere questo esercizio in Java. Ho 2 problemi:
    1) Vorrei che il programma dopo aver fatto l'inserimento di un utente mostri di nuovo il menu per poter fare la stampa o un altro inserimento
    2)Vorrei salvare in una lista per esempio gli elementi che inserisco
    Qualcuno può aiutarmi?
    Per il primo punto puoi risolvere in diversi modi ma è davvero semplice, ti basta scrivere la condizione del while in modo appropriato.
    Al momento resti dentro al while se scelta è minore di 1 o maggiore di 3, ti basta fare il contrario e prendere i valori compresi tra 1 (incluso) e 3 (escluso). Ovviamente scelta all'esterno va inizializzato a un valore che ti permetta di entrare dentro al ciclo la prima volta.
    Se non vuoi fissare scelta a 1 o a 2 puoi anche usare il do-while.

    Per il secondo punto dovresti prima di tutto definire i campi e i metodi di Persona.
    Per ora nome, cognome ... sono definite localmente al metodo main, mentre tu hai bisogno che siano campi di istanza.
    In Persona hai anche bisogno di un costruttore, poi ti converrebbe aggiungere anche i metodi getter e setter (questi se vuoi rendere un oggetto Persona mutabile, dipende dal contesto).

    Una volta fatto questo sarai in grado di creare un nuovo oggetto Persona con i dati inseriti dall'utente e poi potrai aggiungerli a una lista (ad esempio ArrayList).

    Ti converrebbe però inserire il main in una classe esterna a Persona. Inoltre nel codice tutti quei try-catch non hanno senso, solo la parte in cui fai Integer.parseInt () dell'età e della scelta può causare una NumberFormatException, tutti gli altri sono inesatti.
Devi accedere o registrarti per scrivere nel forum
1 risposte