Прежде чем говорить о вашем коде, я рекомендую вам прочитать эту статью.
Это немного легкомысленно, но в этом есть глубокая правда. И он аккуратно отображается с техникой отладки, которой меня учили .... ммм ... 40 лет назад.
Сначала я обращаю ваше внимание на это:
System.out.println("Is your car an import?");
while (true)
{
answer = keyboard.nextLine();
if (answer.equalsIgnoreCase("yes"))
{
yn = true;
break;
}
else if (answer.equalsIgnoreCase("no"))
{
yn = false;
break;
}
else
{
System.out.println("Sorry, I didn't catch that. Please answer yes or no");
}
}
Этот код довольно неплохо задает вопрос «да или нет» и получает ответ. Он включает код для повторной попытки, если пользователь отвечает чем-то, что не распознается как «да» или «нет».
Так что я предполагаю, что кто-то написал этот код для вас ... или вы где-то его нашли. Вам нужно внимательно прочитать этот код и убедиться, что вы точно понимаете, как он работает.
Далее я обращаю ваше внимание на это:
for(int i=0; i<services.length; i++)
{
System.out.println("Do you want a " +services[i]);
answer = keyboard.next();
}
Этот код не имеет смысла. (Объясни это своей резиновой утке!)
Ваш предыдущий код является хорошим примером того, как задать вопрос да / нет. Но это не так:
- Вы не проверяете «да» или «нет».
- Вы не повторяете, если пользователь дает неузнаваемый ответ
- Вы даже не храните ответ .... для каждой отдельной услуги.
Тогда это:
double amount = 0;
double[] price = {39.99, 59.99, 119.99, 109.99};
for(int i =0; i<price.length; i++)
{
amount = (price[i] + price [i]);
}
Похоже, это попытка добавить цену предметов обслуживания к общей сумме. Но:
- Вы делаете это для каждого пункта обслуживания, а не только для пунктов, которые просил клиент.
- В любом случае, вы на самом деле неправильно делаете вычисления. (Поговорите с вашей резиновой уткой об этом!)
Как это исправить?
- Некоторые вещи должны быть очевидны из того, что я сказал выше.
Проблема запоминания ответов из первого цикла for
и их использования во втором цикле for
... на самом деле является проблемой, которую вы можете / должны избежать. Вместо этого объедините две петли в одну. Вот некоторый псевдокод:
for each service:
ask the user if he wants this service
if the user wants this service:
add the service cost to the total.
Поймите логику этого и переведите ее в код Java. (Да, я мог бы написать это для вас, но это побеждает цель!)