Прежде всего, добро пожаловать в SO.
Чтобы ответить на ваш вопрос напрямую, вы можете использовать логические значения, чтобы отслеживать, какое меню использовал клиент, как @Carlos López Marí прокомментировал ваш вопрос или решение @Joakim Danielson,
Кроме того, позвольте мне также предложить вам несколько рекомендаций, поскольку вы упоминаете, что вы все еще неопытны:
A. Используйте методы для инкапсуляции основной части ваших операторов печати, то есть метод для печати «приветствия» и первой партии сообщений, другой для печати пунктов меню и т. Д. То же самое относится к любой части логики, которая может быть на егособственный или повторяемый, т. е. логика после выбора A, B или C, а затем на сумму. Представьте, что основной метод считан как шаги, которые предпримет клиент. Это облегчит чтение вашего кода и обнаружит ошибки, если они есть. Например:
...
do{
printWelcomeMessage();
choice = x.nextLine().toLowercase();
C = choice.charAt(0);
if(C == 'a' || C == 'b' || C == 'c'){
chooseFoodItems();
}
}...
B. Используйте коллекцию для каталога цен. Если вы можете использовать HashMap для сопряжения товаров с ценами, это сделает ваши распечатки и распределение затрат более удобными и простыми для расчета. Если вы не можете использовать HashMap, вы можете вместо этого использовать 2 таблицы, одну с именами и одну с ценами.
C. Вы можете изменить свой x.nextLine();
на x.nextLine().toUppercase()
(или нижний регистр), чтобы упростить операторы переключения.
D. Хотя это и не так важно, при сравнении чисел принято делать 0 < CHOICE && CHOICE < 8
вместо 1 <= CHOICE && CHOICE <= 7
(например, в цикле for мы обычно делаем это как for(int i=0; i < limit; i++)
E. Попробуйте упростить логику вашего кодастолько, сколько вы можете. Будет легче написать, прочитать и поработать с ним вообще.