Zabezpieczenie przed błędnie wprowadzonymi danymi

0

Witam. Prośba o nie śmianie się :) Jestem początkującym mówiąc młodzieżowo noobem ;)
Zaczynam jakieś żałosne pierwsze programiki w końcu nie od razu Rzym zbudowano i nie mogę zrobić jednej pętli oraz opcji. Jeśli ktoś rzuciłby okiem byłbym wdzięczny ... pomijając fakt że pewnie da się to napisać 1000 razy lepiej i zwięźlej.
Moje pytanie:
Przy wyborze opcji nr 5
Jak zrobić żeby po wpisaniu cyfr , znaków zamiast imienia program mówił że błednie wprowadzone dane /niedozwolone znaki spróbuj jeszcze raz ?

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("-----------WYBIERZ OPCJE-------------");
System.out.println("---------1.MNOZENIE------------------");
System.out.println("---------2.DZIELENIE-------------");
System.out.println("---------3.ODEJMOWANIE-------------");
System.out.println("---------4.DODAWANIE-------------");
System.out.println("---------5-COKOLWIEK-------------");
int wybor=scanner.nextInt();


switch (wybor) 
{
case 1:
int wynik;
System.out.println("Podaj 1 liczbę przez ktora bedziesz mnozyl");
int l1=scanner.nextInt();
System.out.println("Podaj 2 liczbę przez ktora bedziesz mnozyl");
int l2=scanner.nextInt();
wynik=l1*l2;
System.out.println("Wynik mnożenia to "+wynik);
break;
case 2:

System.out.println("Podaj 1 liczbę przez ktora bedziesz dzielil");
int l3=scanner.nextInt();
System.out.println("Podaj 2 liczbę przez ktora bedziesz dzielil");
int l4=scanner.nextInt();
wynik=l3/l4;
System.out.println("Wynik mnożenia to "+wynik);
break;
case 3:

System.out.println("Podaj 1 liczbę ktora bedzie odejmowal");
int l5=scanner.nextInt();
System.out.println("Podaj 2 liczbę ktora bedziesz odejmowal");
int l6=scanner.nextInt();
wynik=l5-l6;
System.out.println("Wynik mnożenia to "+wynik);
break;
case 4:

System.out.println("Podaj 1 liczbę przez ktora bedziesz mnozyl");
int l7=scanner.nextInt();
System.out.println("Podaj 2 liczbę przez ktora bedziesz mnozyl");
int l8=scanner.nextInt();
wynik=l7+l8;
System.out.println("Wynik mnożenia to "+wynik);
break;
case 5:
System.out.println("COKOLWIEK");
System.out.println("Podaj imię");
String imie = scanner.next();
System.out.println("Podaj wiek");

int wiek=scanner.nextInt();
System.out.println("Twoje imie to " +imie +", twój wiek : " +wiek);


break;

default:
System.out.println("Nie wybrales zadnej opcji");
}
}}
1

Poczytaj o wyrażeniach regularnych, obsłudze wyjątków(try-catch), a wszystko opakuj np. w pętlę while wspomagając się wartością logiczną (boolean).
Dodatkowo możesz sobie wydzielić to wszystko co masz w case'ach do metod statycznych wraz ze Scannerem - będzie ciut czytelniej :)

1

Najprościej to jeśli masz String to przelecież po wszystkich literach i sprawdzić czy jest literą, coś w stylu
http://stackoverflow.com/questions/5238491/check-if-string-contains-only-letters

1 użytkowników online, w tym zalogowanych: 0, gości: 1