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.
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);
}
}
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...