我正在尝试为我的程序设计类编写一个程序,该程序应该像在线购物商店一样运行,因此在某个时候该程序应该询问用户是否有促销代码,以及是否输入了促销代码在“ y”中表示是,则要求输入六个字符的促销代码。
促销代码的标准是:
由于某种原因,我的程序似乎无法正常运行。它可以很好地编译,但是当到达检查促销代码的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;
}
对于无法正确格式化的代码块,我深表歉意。我似乎无法弄清楚如何正确格式化...抱歉!我确实做了尝试,但显然做不到,所以我尽了最大的努力。无论如何,这就是相关的代码。非常感谢您的帮助。
代码的数据类型为char。但是char的值'7'
不是7而是55。
因此,像这样更改if:
if(code=='7'&&prm.substring(4).equals("bG"))
补充说明:
break
声明。Character.toLowerCase
mo
扫描仪?仅使用pro
扫描仪对象 char promo= Character.toLowerCase(pc.charAt(0));
if(promo == 'y'){
/**
* For yes
*/
} else {
/*
* For no or different input
*/
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句