Problema col while

di il
4 risposte

Problema col while

Forse è una cosa stupida, ma mi sta facendo diventare matto:

questo è il codice:

while(finito==false)
		{
			
			if(lettoreNum.hasNextInt()==true)								
			{
				età=lettoreNum.nextInt();
				finito=true;
				break;
			}
			System.out.println("errore");
			
		}

Il mio scopo è creare un metodo che controlli che io inserisca un intero e continui a chiedermi l'inserimento nel caso inserisca qualunque altra cosa, dopo un messaggio di errore.

Se inserisco subito un numero intero funziona tutto bene, ma appena inerisco, per esempio, dei caratteri a caso, mi si riempie la schermata di "errore errore errore errore........" e non capisco perchè... non dovrebbe stampare una volta il messaggio di errore e poi tornare al while e richiedermi l'inserimento di un nuovo valore? Grazie mille

4 Risposte

  • Re: Problema col while

    Ciao, immagino che tu stia usando gli scanner..In questo caso penso che il problema sia dovuto al fatto che il buffer interno non si svuoti. Per "forzare" questa cosa puoi leggere l'intera riga:
    
    while (!finito) {
    	if (lettoreNum.hasNextInt()) {
    		età = lettoreNum.nextInt();
    		finito = true;
    	} else {
    		lettoreNum.nextLine();
    		System.out.println("errore");
    	}
    }
    
  • Re: Problema col while

    Grazie mille!! funziona benissimo!!

    però non ho capito quel nextLine() a cosa serve... Grazie
  • Re: Problema col while

    Praticamente legge tutti i caratteri dal buffer fino al carattere di newline..di fatto "svuota" tutti i caratteri che non ti servono!
  • Re: Problema col while

    Capito! grazie!!
Devi accedere o registrarti per scrivere nel forum
4 risposte