【问题标题】:Java program doesn't show the desired output [closed]Java程序未显示所需的输出[关闭]
【发布时间】:2021-03-26 17:22:23
【问题描述】:

我是 Java 编程新手。我一直在尝试用 Java 编写一些代码,但从未收到所需的输出(或必须出现的输出)。 (请参阅此处的代码)例如,如果我为类别“w”输入数量 4,那么根据我的说法,它必须将输出显示为 $2940,但输出显示为 $38480,而不是输出“$2940”。请帮助并提前感谢...

case 'A':
case 'a':
    System.out.println("You selected NOS Tank.");
    int price;
    double quantity;
    double variant=0; 
    System.out.println("Select the variant: ");                                                    
    System.out.println("Enter 'D' without apostrophe for dry or 'W' for wet");
    variant=xss.next().charAt(0);                                                                  
    if (variant=='D' || variant=='d'){                
        System.out.println("The price of dry nitrous oxide system is: $600");                
    } else if (variant=='w' || variant=='W'){                
        System.out.println("The price of wet nitrous oxide is: $740");               
    } else {
        System.out.println("Invalid input.");                                                      
        System.out.println("Exiting......");
        System.exit(0);
    }
    System.out.println("Enter the quantity: ");
    quantity=xss.next().charAt(0);
    if (variant=='D' || variant=='d') {
        System.out.println("The amount payable is: $"+(quantity*600));
    } else if (variant=='w' || variant=='W') {
        System.out.println("The amount payable is: $"+(quantity*740));
    } else {
        System.out.println("Invalid input.");                                                      
        System.out.println("Exiting......");
        System.exit(0);
    }
    break;

【问题讨论】:

  • double variant=0;???为什么要在双变量中保存一个字符?这应该是一个 char 变量,以免丢失精度
  • xss是如何初始化的?尝试打印数量和金额。然后您可以确认是否提取了正确的数量。
  • @HovercraftFullOfEels 不走运,伙计。它仍然显示出一些奇怪的输出。

标签: java bluej


【解决方案1】:

你在做

quantity=xss.next().charAt(0);

现在这个位置的字符是 4。但是当你将它存储在int 中时,它将采用它的 ASCII 值,即 52。 可以试试

quantity=Integer.parseInt(xss.next().charAt(0)+"");

或者

quantity=Integer.parseInt(String.valueOf(xss.next().charAt(0)));

【讨论】:

  • 谢谢伙计。对我来说效果很好。
猜你喜欢
  • 1970-01-01
  • 2019-07-16
  • 2023-03-12
  • 1970-01-01
  • 2019-07-14
  • 2020-12-27
  • 1970-01-01
  • 2013-09-06
  • 2022-12-10
相关资源
最近更新 更多