Я хотел бы, чтобы массивы запомнили все это - PullRequest
3 голосов
/ 02 января 2012

Это касается моего задания, поэтому я буду признателен за общие ответы с объяснениями.

У меня есть цикл for, который я должен сделать для системы онлайн-заказов.Цикл for и упорядочивание все работают отлично, но если один и тот же элемент вводится дважды, он забывает предыдущий заказ для того же элемента и запоминает только последний.Мне необходимо использовать простые массивы и циклы for, поэтому я был бы признателен, если бы решение / справка также имели этот базовый уровень.

Мой код выглядит примерно так (ПРИМЕЧАНИЕ: ниже приведен лишь пример того, чточасть цикла выглядит следующим образом - это не полная программа):

for (int i = 0; i < 3; i++) { //I changed the loop so there's no confusion about
                              //what I am actually asking about.
    if (order.equalsIgnoreCase(computer) {
         int price = quantity[i] + itemcode;
    }
}

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

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

Пожалуйста, задавайте мне вопросы, если это неясно.

Ответы [ 2 ]

1 голос
/ 02 января 2012

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

int price=0;
for (int i = 0; i < 3; i++) { //I changed the loop so there's no confusion about
                              //what I am actually asking about.
    if (order.equalsIgnoreCase(computer) {
          price += quantity[i] + itemcode; //use the previous value of price
    }
}

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

1 голос
/ 02 января 2012

«Забывает» предполагает, что вы что-то переписываете в своем коде, а не, скажем, просто увеличиваете. Просмотрите свой код, посмотрите, какие его части сбрасываются при размещении нового заказа. Например, если вы делаете

quantity[1] = getNumberFromUser("How many apples?");

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

quantity[1] += getNumberFromUser("How many apples?");

Еще один общий совет - использовать операторы print для отладки вашего кода. Таким образом, вы сами сможете увидеть, что на самом деле происходит. Научиться использовать настоящий отладчик также было бы очень полезно.

...