Se devi controllare che l'utente non scriva castronerie, allora l'approccio è diverso:
1) Leggi sempre tutto come Stringa.
2) Effettua i controlli di consistenza.
3) Se c'è un errore nell'input, richiedilo nuovamente all'utente
codice:int variabile = -1; // come prima System.out.println("Inserire il valore numerico: "); while(variabile <= 0) { // Mai fidarsi dell'utente: tratto una stringa, così sono sicuro // di pulire il buffer anche dalle eventuali castronerie String lettura = scrivi.nextLine(); // Verifico se ciò che mi è arrivato è un numero oppure no try { variabile = Integer.parseInt( lettura ); } catch (NumberFormatException nfe) { // Ahi: l'utente ha scritto qualcosa che non è un numero // Per me è come se avesse scritto un numero negativo, cioè un dato non valido variabile = -1; // non serve, ma è utile per capire } // Eventuali altri controlli sul dominio di "variabile" ... } // Se arrivo qui, variabile è un numero maggiore di 0... lo uso ...
Ciao.![]()



Rispondi quotando