1

Задача сделать незамысловатый логин и после входа, вывести меню.

Метод authorisation()

    public void authorisation() {
    while (true) {
        System.out.print("Username: ");
        userName = input.nextLine();
        System.out.print("Password: ");
        password = input.nextLine();

        for (int i = 0; i < personalList.getPersonalList().size(); i++) {
            if (userName.equals(personalList.getPersonalList().get(i).getUserName()) && password.equals(personalList.getPersonalList().get(i).getPassword())) {
                startMenu();
            }
        }
        System.out.println("Wrong username or\\and password.\n\r" +
                "Please, type again.\r\r");
    }
}

Метод меню называется startMenu(). В этом методе, есть кейс case 6, которая должна возвращать пользователся назад к autorisation()

      case 6:
          authorisation();
          break;
      default:
          System.err.println("Wrong input!");
          break;

Когда только запускаешь код, проблем никаких нет, авторизация работает и при правильном вводе username и password выводится меню. Но, после case 6, пропускается первый nextLine и не доходит до цикла. Если между

    userName = input.nextLine();
    System.out.print("Password: ");

написать input.nextLine(), то цикл проверки не запускается, или запускается, но не пропускает дальше.

В чем проблема и как ее решить?

Благодарю за помощь.

1 Answers1

1

nextInt не считывает конец строки. Добавьте поле него вызов nextLine().