gpt4 book ai didi

java - 程序无法正常运行

转载 作者:行者123 更新时间:2023-12-01 18:37:29 26 4
gpt4 key购买 nike

我正在尝试为我的编程课编写一个程序,该程序应该像在线购物商店一样运行,因此在某一时刻该程序应该询问用户是否有促销代码,并且如果他们输入“y”表示"is",则会要求提供六个字符的促销代码。

促销代码的标准是:

  • 第三个字符必须是 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;
}

对于代码块的格式不正确,我深表歉意。我似乎不知道如何正确格式化它......抱歉!我确实尝试过,但显然做不到,所以我尽力了。无论如何,这就是相关的代码。非常感谢您的帮助。

最佳答案

code的数据类型是char。但'7'的char值不是7而是55。

所以改变 if 像这样:

if(code=='7'&&prm.substring(4).equals("bG"))

需要添加的一些注释:

  1. 如果您想继续使用 switch,请不要忘记 break 语句。
  2. 但是您可以通过使用简单的 if 和 Character.toLowerCase 来改进它
  3. 为什么要创建新的 mo 扫描仪?仅使用 pro 扫描仪对象
<小时/>
   char promo= Character.toLowerCase(pc.charAt(0));
if(promo == 'y'){
/**
* For yes
*/
} else {
/*
* For no or different input
*/
}

关于java - 程序无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21297241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com