Cześć,
Mam mały problem z kodem. Może ktoś by mi był to w stanie jakoś wyjaśnić.
Miałem problem że przy wprowadzaniu czegoś innego niż dostępne opcje aplikacja przestała działać. Postanowiłem dodać try catch i generalnie działa z jednym małym ale... jeżeli użyje "break;" to wiadomo aplikacja kończy działanie ale w momencie jak nie użyję break; to pętla uruchamia się cały czas i użytkownik nie ma już możliwości ponownego wybrania opcji.
Może ktoś pomoże mi to zrozumieć.
package com.company;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Party party = new Party();
boolean exit = true;
while (exit){
System.out.println("Wybierz opcję:");
System.out.println("1 - Wyświetl gośći");
System.out.println("2 - Dodaj gości");
System.out.println("3 - Pokaż posiłki");
System.out.println("4 - Znajdź po numerze telefonu");
System.out.println("5 - Usuń gościa");
System.out.println("6 - Wyjście");
try {
int userChoice = scanner.nextInt();
if (userChoice >= 7) {
System.out.println("Wybrałeś nieistniejącą opcję!");
} else
switch (userChoice) {
case (1): party.displayGuest();
break;
case (2): party.addGuest();
break;
case (3): party.showMeals();
break;
case (4): party.displayGuestByPhoneNumber();
break;
case (5): party.removeGuest();
break;
case (6): exit = !exit;
break;
}
} catch (InputMismatchException e){
System.out.println("Wybrano opcję w nieprawidłowym formacie!");
break;
}
}
}
}