Salve, ho notato una stranezza nel metodo nextDouble() della classe Scanner. In sostanza se immetto un valore non puramente numerico ma composto da un numero e una stringa, non viene lanciata in modo normale InputMismatchException...
Allego esempio al volo.
Se immetto 4,90 euro, mi stampa 4,9; se immetto 4,90euro, mi lancia l'eccezione ma va in loop ignorando il nextDouble() presente nel try...codice:import java.util.*; public class ProvaDouble { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Inserisci prezzo: "); double prezzo = 0; boolean ripeti = true; do { try { prezzo = input.nextDouble(); if (prezzo > 0.0) { ripeti = false; } } catch (InputMismatchException e) { System.out.print("Inserimento non valido, reinseriscilo: "); } } while(ripeti); System.out.println("Il prezzo e' " + prezzo); } }

Rispondi quotando

