kontrola wejścia użytkownika tylko int
Staram się, aby moje dane wejściowe użytkownika nie załamały mojego programu, ograniczając to, co użytkownik może wprowadzić, takie jak:
tylko bycie intbędąc pomiędzy 1-30Kod, który napisałem, działa tylko do pewnego momentu. Jeśli wpiszesz coś, co nie jest int, sprawdzi to i poprosi o ponowne wpisanie. Potem znowu, jeśli nadal będziesz pisał cokolwiek poza int. Mam kolejną pętlę while, jeśli wpisuje int, i jeśli jest poza strefą 1-30, poprosi użytkownika o ponowne wprowadzenie. Jednak po tym, jeśli użytkownik wpisze inny „cokolwiek oprócz int”, program ulegnie awarii. Próbowałem połączyć obasc.hasnextint()
i sprawdzenie wejścia między stanem 1-30, ale jeśli umieściłemsc.nextint()
przedsc.hasnextint()
a użytkownik wprowadza cokolwiek poza int, program ulega awarii. Jeśli umieściłem go po pętli condtion, to wejście użytkownika nie zostanie zadeklarowane.
int choose;
System.out.print("type an integer: ");
Scanner sc=new Scanner(System.in);
while (!sc.hasNextInt() ) {
System.out.println("only integers!: ");
sc.next(); // discard
}
choose=sc.nextInt();
while (choose<=0 || choose>30)
{
System.out.print("no, 1-30: ");
choose=sc.nextInt();
}
sc.close();