Dlaczego po wpisaniu double'a z wymaganego zakresu 'program' zapętla się w nieskończoność? Nie zrozumiałem wyjątków, to głupi błąd czy oba?
/*class mOutOfRangeExc extends RuntimeException {
}*/
PrintStream so = new PrintStream(System.out);
Scanner sc = new Scanner(System.in);
int number = -1;
boolean valid = false;
while (!valid)
{
try {
so.println(" Podaj liczbe z przedzialu [0, 99]: ");
number = sc.nextInt();
if ((number < 0) || (number > 99)) throw new mOutOfRangeExc();
}
catch(InputMismatchException ime)
{
so.println(" To nie jest liczba calkowita !");
so.println(" Komunikat systemowy: " + ime);
number = -1;
}
catch (mOutOfRangeExc moore)
{
so.println(" Podano liczbe spoza zakresu !");
}
valid = ((number < 0) || (number > 99)) ? false : true;
}