Napisałem śmieszny program, choć nie jest to jeszcze cały program. Ale coś nie działa jak trzeba. Kod wygląda tak:
class Losowanie {
private Scanner wczytanaLiczba;
private int Liczba = 0;
public Losowanie() {
wczytanaLiczba = new Scanner(System.in);
}
public void start() {
do {
wczytajLiczbe();
} while (Liczba != 3);
}
private void wczytajLiczbe() {
try {
Liczba = wczytanaLiczba.nextInt();
} catch (InputMismatchException e) {
blednyNumer();
}
}
private void blednyNumer() {
System.err.println("Podano zla wartosc");
}
}
public class Test {
public static void main(String[] args) {
Losowanie losowanie = new Losowanie();
losowanie.start();
}
}
Jeśli wpisuje cyfry wszystko działa bez zarzutu. A jak wpiszę coś co nie jest cyfrą np. literki to w nieskończoność wyświetla mi "Podano zla wartosc". A powinno złapać wyjątek InputMismatchException i raz wyświetlić ten tekst. Po czym pytać o kolejną liczbę aż nie zostanie spełniony warunek wczytania liczby 3 z klawiatury. Wie ktoś o co chodzi z tą nieskończoną pętlą i jak naprawić to by zachować podobny układ kodu? Proszę o wparcie.