Ciclo in loop dopo la prima scelta

di il
3 risposte

Ciclo in loop dopo la prima scelta

Ciao a tutti, volevo chiedervi aiuto su un ciclo che rappresenta un menù da cui poter scegliere varie voci: dopo la prima scelta fatta, il menù si ripresenta per poter fare altre scelte, ma stavolta si mette in attesa infinita e non esegue nulla.......

Vi riporto uno dei modi in cui ho implementato il tutto:
public void connetti() throws ClassNotFoundException, IOException{
    
 // qui ci sonoo altre funzioni per usare la classe Serializable tipo:
 //   Socket socket_client;
 //   socket_client = new Socket(indirizzo, porta);
 //   uscita = new ObjectOutputStream(socket_client.getOutputStream());
 //   ingresso = new ObjectInputStream(socket_client.getInputStream());

            try{
            
                boolean vai = true;
                while(vai){
                    menu();
                    scelta_menu = scan.nextInt();
                    switch(scelta_menu){
                        case 1: {scelta_1(); break;}
                        case 2: {scelta_2(); break;}
                        case 3: {scelta_3(); break;}
                        case 4: {scelta_4(); ciclo = false; break;}
                        default: {System.out.println("Inserisci un numero corretto"); continue;}
                    }
                }
                socket_client.close();
            }
        catch(IOException e){System.out.println(e.getMessage());}
    }
dove ad esempio " scelta_1() " è così fatta:
public void scelta_1() throws IOException, ClassNotFoundException{
    
        numero_1.numero_menu = scelta_menu;
        uscita.writeObject(numero_1);
        mio_oggetto = (Serial)ingresso.readObject();
        mio_oggetto.oggetto.mostra_oggetto();
    }
Ripeto: al primo giro funziona, dopo no.

3 Risposte

  • Re: Ciclo in loop dopo la prima scelta

    Leggi da socket?

    poi utilizzi delle variabili che non conosciamo...ciclo dov'è? scan cos'è?
  • Re: Ciclo in loop dopo la prima scelta

    Te l'avevo già detto, sono tutti quei "break" che metti che ti fanno uscire dal while..devi toglierli! Nel codice che ti avevo mandato avevo corretto questi problemi (ed altri, come l'aggiunta della "nextLine" dopo la "nextInt" altrimenti lo scanner non ti fa leggere più niente).
  • Re: Ciclo in loop dopo la prima scelta

    zaknafein83 ha scritto:


    leggi da socket?

    poi utilizzi delle variabili che non conosciamo...ciclo dov'è? scan cos'è?
    Scusa, ho sbagliato a riportare il codice, è questo il pezzo corretto:
    case 4: {scelta_4(); vai = false; break;}
    "scan" --> Scanner scan = new Scanner(System.in);

    Scusa Della, riprovo......
Devi accedere o registrarti per scrivere nel forum
3 risposte