2016-11-09 4 views
1

Я практикуя Java и хотел, чтобы позволить пользователю выбрать опцию из массива, такие как:Запрашивать выбрать из массива

String Food[] = {"Beans","Rice","Spaghetti"}; 

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

Также есть способ распечатать его? кроме того делает:

System.out.println(Food[0]); //and so on 

для каждого из них.

Редактировать: не список массивов.

+2

Sidenote: Это массив, а не массив ArrayList. – Keiwan

+0

btw вам нужно переопределить toString в Food .... –

ответ

1

Вы можете распечатать Array не ArrayList, выполнив:

System.out.println(Arrays.toString(Food)); 

Он напечатает: [Beans, Rice, Spaghetti]

Если вы говорите о ArrayList, вы должны сделать:

ArrayList<String> Food = new ArrayList<String>(); 

Food.add("Beans"); 
Food.add("Rice"); 
Food.add("Spaghetti"); 

Затем вы можете перебрать ArrayList и создать свой собственный String с помощью StringBuilder

После прочтения вашего комментария, я думаю, у вас возникла проблема в структурировании вашей программы. Я позабочусь об этом. В общем, вы должны выполнить следующие действия:

  1. Программа начинается
  2. Программа выводит доступные в меню опций
  3. Программа предлагает пользователю выбрать один из перечисленных вариантов
  4. Пользователь выбирает опцию
  5. Программа повторит шаг 3, только если пользователь хочет добавить материал в свой заказ.
  6. Если пользователь ничего не нужно, программа выводит общую стоимость заказа

Некоторые идеи о том, как достичь этого правильный путь:

  1. Я хотел бы использовать class для инкапсуляции характеристик «порядка». Например: описание, имя и цена являются важными материалами, которые необходимо отслеживать для каждого элемента.

  2. Если вы не знаете, сколько раз ваша программа будет работать, у вас есть два варианта: использование цикла do while или цикла while. Попытайтесь подумать в состоянии, которое может сделать вашу программу неограниченным числом раз, пока пользователь не будет выполнен. Внутри цикла вы можете иметь переменную sum, в которой вы будете отслеживать элементы, которые пользователь хочет.

  3. Лучше отслеживать предметы, используя только цифры, чем Strings. Компьютеры быстрее найти материал таким образом. Итак, если вы используете HashMap, чтобы высмеять систему баз данных в своей программе, это сделает ее лучше и быстрее.Затем вместо того, чтобы использовать if else для управления потоком, вместо этого вы можете использовать switch.

Надеюсь, это поможет.

+0

спасибо, это помогло мне с проблемой печати, все равно придется ждать, пока кто-нибудь просветит меня о вводе пользователя. –

+0

Что вы пытаетесь достичь? «Сканер» - это способ запросить ввод в консольной программе. –

+0

Попытка попросить пользователя ввести, скажем так, когда пользователь выберет один из вариантов, он будет запускать 'if else', чтобы установить цену, в дальнейшем он рассчитает цену всех выбранных товаров и стоимости доставки в зависимости от на этом, по крайней мере, это то, к чему я стремлюсь. –

0

EDIT: Для более эффективного способа распечатки содержимого массива, использовать улучшенный для цикла:

for(String f : Food) 
{ 
    System.out.println(f); 
} 

Это фактически такой же, как:

for(int i = 0; i < Food.size(); i++) 
{ 
    System.out.println(Food[i]) 
} 

Если я «Я понимаю, что вы пытаетесь сделать правильно, я думаю, что этого должно быть достаточно (отказ от ответственности, прошло некоторое время с тех пор, как я работал с Scanner():

+2

'for (String f: Food [])' будет неверным. Удалите скобки. –

Смежные вопросы