#java #eclipse
#java #eclipse
Вопрос:
Мне нужно использовать входные данные из того, что пользователь ввел в Java Scanner, а затем выяснить, принимается ли этот конкретный ввод как часть проверки, если в инвентарном массиве достаточно. Также конкретное значение массива int inventory должно совпадать с массивом string items . Например, для элемента «Отвертка» есть количество 500.
Это программа для домашнего задания, и я застрял на шаге, где мне нужно выяснить, сколько элементов пользователь хочет купить. Если введенная сумма больше, чем в int[] inventory, я должен сообщить об этом пользователю и выйти из программы. Но если у меня достаточно запасов, я должен показать окончательную сумму счета. Я думаю, что мне удалось правильно запросить у пользователя, сколько они хотят, но я застрял на использовании этой информации для моего следующего метода. До сих пор мне удалось заставить работать только purchaseAmount, но я не могу определить finalBillAmount . Что я делаю неправильно?
String[] items = {"Hammer", "Wrench", "Pliers", "Saw", "ScrewDriver" };
double[] prices = {1.99, 2.99, 3.99, 4.99, 5.99};
int[] inventory = {100, 200, 300, 400, 500};
String itemAsked = askUserForItem(items);
String itemInfo = showItemInfo(items, prices, inventory, itemAsked);
int itemAmount = purchaseAmount(items, inventory, itemAsked, itemInfo);
int finalAmount = finalBillAmount(items, inventory, itemAsked, itemInfo, itemAmount);
private static int purchaseAmount(String[] items, int[] inventory, String itemAsked,
String itemInfo) {
int itemAmount = 0;
Scanner myS = new Scanner(System.in);
System.out.printf("nHow many would you like to purchase? -> ");
itemAmount = myS.nextInt();
return itemAmount;
}
Я ожидаю, что на выходе будет показана доступная сумма и указана окончательная сумма счета: «Ваш общий счет составляет: $ % s». Кроме того, если элементы недоступны, вывод должен быть «Извините, у нас есть только Inventory: %s of Item: %s»
Комментарии:
1. Есть ли у вас определенные требования к назначению, которые означают, что вы делаете это так, в отличие от создания объектов для представления инструментов и их цен / запасов?
2. Мы еще не начали с объектов.
3. Затем вам нужно передать индекс элемента, выбранного пользователем, и использовать его, чтобы получить цену количество, затем, если количество не превышает запас, умножьте два и верните это.
Ответ №1:
Я помогу с логикой и оставлю остальное вам. Что касается метода: finalBillAmount(items, inventory, itemAsked, itemInfo, itemAmount);
мы видим, что у нас есть множество параметров для работы. Для начала мы структурируем цикл for, чтобы увидеть, в каком индексе находится элемент по отношению к массиву элементов.
int index = 0;
for(int i = 0;i<items.length;i ){
if(itemAsked.equals(items[i]){
index = i;
}
Далее мы сравниваем количество запрошенных предметов с количеством в инвентаре:
if(itemAmount>inventory[index]){
System.out.println("Sorry, we don't have that many of " item[index]);
return 0;
}
else{
//I would need to see how your showItemInfo method works in order to compute the bill.
}
Надеюсь, это поможет!