Я пытаюсь написать программу для своего класса программирования, и программа должна работать как онлайн-магазин покупок, и поэтому в какой-то момент программа должна спросить у пользователя, есть ли у них промо-код, и если они добавят «y» для «да», он попросит промо-код из шести символов.Программа не работает должным образом
Критерии рекламного кода:
- Третий символ должен быть 7
- пятые и шестые символы должны быть 'Bg.
По какой-то причине моя программа, похоже, работает неправильно. Он компилируется отлично, но когда он достигает оператора if, который проверяет промо-код, он всегда распечатывает строку, в которой сообщается, что ваш рекламный код неверен. Я даже изменил его так, что критерии состояли только в том, что одному из символов в коде должно быть 7, а затем ввести «777777» в качестве промо-кода, но он все еще печатается, как если бы промо-код был неправильным.
Я не могу понять, почему он работает неправильно. Вот исходный код:
Scanner pro=new Scanner(System.in);
out.println("\nDo you have a promotional code? Enter Y for yes, N for no: ");
String pc=pro.nextLine();
char promo=pc.charAt(0);
int o=7;
switch(promo)
{
case 'y':
case 'Y':
Scanner mo=new Scanner(System.in);
System.out.println("Please input the six character promotional code here: ");
String prm=mo.nextLine();
char code=prm.charAt(2);
if(code==7&&prm.substring(4).equals("bG"))
{
ordp=ordp*.9;
System.out.println("\nYou have recieved ten percent off your order! Your order subtotal is now "+ordp+".");
}
else
{
System.out.println("\nYour promotional code is not valid.");
}
case 'n':
case 'N':
break;
}
Я извиняюсь за блок кода не отформатированный правильно. Я не могу понять, как правильно его отформатировать ... извините! Я действительно попытался, и не могу понять, по-видимому, поэтому я сделал все, что мог. В любом случае, это соответствующий код. Помощь очень ценится.
Во-первых: можете ли вы привести несколько примеров входов, которые, по вашему мнению, должны работать, но не так ли? И второе: попробуйте исследовать некоторые из значений. Добавьте некоторые инструкции 'System.out.println' для печати некоторых выражений на этом пути - например, поместите' System.out.println (prm.substring (4)) 'непосредственно перед оператором' if' и посмотрите, согласуется ли это с что вы ожидали. – jazzbassrob
Напишите 'code == '7'' вместо' code == 7'. Неожиданные вещи случаются, когда вы сравниваете значения 'char' с значениями' int'. –
Кстати, не используйте 'double' или' float' для хранения суммы денег. Плохие вещи произойдут, когда вы сделаете арифметику. –