Меню опций, которое увеличивается и уменьшается с количеством объектов массива - PullRequest
0 голосов
/ 14 ноября 2018

Я создал цикл for, который перечисляет все объекты в моем массиве-списке, но мне нужно, чтобы это было динамическое меню параметров, которое всегда заканчивается выходом. Я использовал меню параметров переключения регистра в других частях программы различными способами. Но я не уверен, как создать здесь инкрементный переключатель регистра или если его нужно будет поместить в цикл for?

private static void subCar(Scanner keyboard, CarLot carLot) {

  if (carLot.getCar().size() == 0) {
      System.out.println("No Cars on the Car Lot to Remove");
  }else {
      System.out.println("");
      System.out.println("Cars Available to Remove: ");
      System.out.printf("%-7s%-6s%-35s%-5s\n","Option"," ID","Make/Model/Year","Price");

      for (int index=0; index < carLot.getCar().size(); index++) {
           System.out.printf("%-7s%-6s%-2s%-5s\n",carLot.getCar().get(index).getID(),
                carLot.getCar().get(index).getMake(),carLot.getCar().get(index).getModel(),
                carLot.getCar().get(index).getPrice());
       }
   }
}

Я пытаюсь создать пункт меню, чтобы я мог выбрать, какой объект удалить из моего массива-списка Я хочу, чтобы вывод выглядел так:

option   ID    Make/Model/Year          Price
1.       2     Chevrolet cavalier 2000  1999.99
2.       Exit
enter option:

опция выхода всегда должна быть последней

1 Ответ

0 голосов
/ 14 ноября 2018

Ваш последний вариант всегда будет больше, чем размер списка автомобилей.

int option = //read it form scanner; 
if (option > carLot.getCar().size()) { 
    // exit 
} else { 
    carLot.getCar().remove(option);
}

Чтобы распечатать все варианты и выход один. Вам нужно извлечь индекс вне цикла, цикла и одного отпечатка после цикла. Один из примеров:

int index = 0;
for (; index < carLot.getCar().size(); index++) {
    System.out.printf("%-7s%-6s%-2s%-5s\n",
        index,
        carLot.getCar().get(index).getID(),
        carLot.getCar().get(index).getMake() + " " + carLot.getCar().get(index).getModel(),
        carLot.getCar().get(index).getPrice());
}
System.out.printf("%-7s%-6s", index, "Exit");
...