Все мои методы работают нормально, когда их вызывают по одному.
У меня есть два меню: одно Main
и для Customer
.
public void getMainMenuChoice() {
Scanner kb =new Scanner(System.in);
boolean check = true;
while(check) {
Menu.mainMenu();
int choice = kb.nextInt();
switch(choice) {
case 0:
System.out.println("Goodbye");
check = false;
break;
case 1:
getCustomerMenuChoice();
case 2:
Menu.mainMenu();
}
}
}
//Employee Choice from the Menu
public void getCustomerMenuChoice() {
Scanner kb =new Scanner(System.in);
Menu.customerMenu();
int choice = kb.nextInt();
switch(choice) {
case 0:
Menu.mainMenu();
case 1:
customerWithdraw();
case 2:
System.out.println("In progress");
case 3:
createCustomerAccount();
case 4:
System.out.println("Enter Customer Passport");
String passportNumber = kb.nextLine();
findCustomer(passportNumber);
System.out.println("Waiting");
}
}
В основном, когда я вызываю getMainMenuChoice () Я могу выбрать меню клиента
Когда я нахожусь в этом меню и, например, вызвать 4 findCustomer () Он просто перезагружает mainMenu и печатает waiting
вверху, когда мне предлагают ввести номер паспорта.
Это обзор того, что происходит
Введите:
Меню клиента
Меню сотрудника
Выход из приложения.
Выбор -> 1
Введите:
Снятие средств с клиента
Депозит клиента
Создание учетной записи
Удалить клиента
Найти клиента
Показать всех клиентов
Назад
Выбор -> 4
* 107 1 * Ввод паспорта клиента
// Он просто игнорирует метод и печатает меню ниже. Ввести паспорт клиента
Введите:
Меню клиента
Меню сотрудника
Выйти из приложения.
Выбор ->
//Finding a customer
public Customer findCustomer(String passportNumber) {
for(Customer currentCustomer : listCustomer)
if(currentCustomer.getPassportNumber().equals(passportNumber)) {
System.out.println("Customer Found: " + currentCustomer);
return currentCustomer;
}
return null;
}
Я не уверен, почему это происходит, я пытаюсь отлаживать уже несколько часов.
Это как-то связано с while l oop в getMainMenuChoice ( )