程序无法正常运行

用户名

我正在尝试为我的程序设计类编写一个程序,该程序应该像在线购物商店一样运行,因此在某个时候该程序应该询问用户是否有促销代码,以及是否输入了促销代码在“ 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;
}

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

亚历克西斯C.

代码的数据类型为char。但是char的值'7'不是7而是55。

因此,像这样更改if:

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

补充说明:

  1. 如果您想继续使用交换机,请不要忘记以下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
       */
   }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章