JAVA - Меню работает в цикле - Как я могу распечатать все варианты? - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь выучить JAVA и работаю над простым заданием заказа пиццы, работающим исключительно в текстовом / консольном формате.

Я заставил пользователя выбрать пиццу, но ему нужна опциядобавить дополнительные ингредиенты.

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

Я хочу, чтобы они могли выбирать несколько ингредиентов, поэтому я делаю это в цикле.

Мой код на данный момент выглядит следующим образом:

for (int i = 0; ingredientInput>0; i++ ){
            toppingsMenu();
            ingredientInput = ingredientScan.nextInt();
            ingredientScan.nextLine();
            System.out.println("Type your choice here:");
        }
        System.out.println(ingredientInput);

Все отлично работает, но я хотел бы добавить system.out.println (), сообщая пользователю, что он 'Вы выбрали:

«Вы добавили дополнительный сыр - хотели бы вы добавить еще?» Если это так, я бы хотел расширить это предложение: «Выдобавили дополнительный сыр и пепперони - Хотите добавить еще? "

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

Спасибо.

Решение, предоставленное Адилом Ахмадом

ArrayList<Integer> ingredients = new ArrayList<>(); 
for (int i = 0; ingredientInput>0; i++ ){
        toppingsMenu();
        ingredientInput = ingredientScan.nextInt();
        ingredientScan.nextLine();
        ingredients.add(ingredientInput);
        System.out.println("Type your choice here:");
    }
    System.out.println(ingredientInput);

Оглядываясь назад, мне так интересно посмотреть, какие проблемы я пытался решить, как сейчасЧерез несколько месяцев это кажется таким простым.Но все равно спасибо всем, кто помог: D

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Вы можете использовать что-то вроде этого

String orderedSoFar = "";
boolean done = false;
do {
    // read next ingredient from user
    String currentIngredient = scanner.nextLine();
    // if first extra ingredient
    if(orderedSoFar.equals("")){
        orderedSoFar += currentIngredient;
    // if not first extra ingredient
    } else {
         orderedSoFar += " & " + currentIngredient;
    }
    System.out.println("Ingredients so far " + orderedSoFar);
    System.out.println("Add more extra ingredients?");
    // read choice to continue or not from user
    done = Boolean.valueOf(scanner.nextLine());
}while(!done);
0 голосов
/ 27 сентября 2018

Прежде всего, вы должны иметь возможность хранить все добавленные ингредиенты в контейнере данных (например, ArrayList или HashMap).Всякий раз, когда пользователь вводит ингредиент, просто добавьте, что в вашем ArrayList

ArrayList<Integer> ingredients = new ArrayList<>();
for (int i = 0; ingredientInput>0; i++ ){
            toppingsMenu();
            ingredientInput = ingredientScan.nextInt();
            ingredientScan.nextLine();
            ingredients.add(ingredientInput);
            System.out.println("Type your choice here:");
        }
        System.out.println(ingredientInput);

После того, как вы собрали все выбранные пользователем ингредиенты в вашем ArrayList, вы можете затем перебрать его в цикле и построить свойпоследнее сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...