我在主方法中捕获了inputMismatchException,并希望在捕获异常后再次进行do-while循环。我什至编写了一个明确的继续语句,但是没有用。我该怎么办?

public class AddressBookApp {

public static void main(String[] args) {
    AddressBook abook = new AddressBook();

    System.out.println("Welcome to the Address Book Application\n");
    Scanner sc = new Scanner(System.in);

    int menuNumber = 4;
    loop:
    do {
        abook.menu();

        try{
            menuNumber = sc.nextInt();
            System.out.println();

            if (menuNumber < 1 || menuNumber > 4){
                System.out.println("Please enter a valid menu number\n");
            } else if (menuNumber == 1) {
                abook.printEntries();
            } else if (menuNumber == 2) {
                abook.addEntry();
            } else if (menuNumber == 3) {
                abook.removeEntry();
            } else {
                System.out.println("Thanks!  Goodbye.");
                sc.close();
                return;
            }


        } catch (InputMismatchException ime) {
            System.out.println("Please enter an integer");
            sc.next();

            continue loop;
        }

    } while (menuNumber != 4);
    sc.close();
  }
}

最佳答案

您留下的menuNumber等于4,这是循环的终止条件。当然,您的循环将结束。

10-04 23:25