0

Суть метода заключается в том, что он считывает команды пользователя при помощи Scanner() и, в зависимости от результата ввода, что-то делает.

Проблема заключается в том, что мой метод срабатывает дважды(?). Т.е., он срабатывает так, что первый раз в операторе if он избирает себе долю else (т.е. срабатывает так, будто команда была введена неправильно), после чего запускается уже правильно, и принимает команды так, как того желал я.

Scanner() у меня один на программу, до выполнения метода он вызывается один раз для снятия показаний, передаваемых после одному важному int.

Вот код самого метода commandLine():

private static void commandLine() { // тут задают команды
try {

    System.out.println("Введите команду: " + "\n" +
            "/devastation - опустошить" + "\n" +
            "/withdrawal - снять определенную сумму" + "\n");

    String command = input.nextLine(); System.out.println();

    if(command.equals("/devastation")) devastation(); // обнуление
    else if(command.equals("/withdrawal")) cashWithdrawal(); // запуск диалога пользовательского запроса
    else System.out.println("\nВведите команду!\n"); // если команда введена неправильно

} catch(InputMismatchException | BankomatExceptions commandLineException) {

    System.out.println("\nПерехвачено исключение!\n");

}

}

insolor
  • 49,104
sillmarry
  • 23
  • 4

1 Answers1

0

Попробуй, после того, как в коде считал "важный int", вызвать input.nextLine();

AndreyKirov
  • 124
  • 1
  • 6