其他语句仅在奇数输入上给出输出

时间:2018-10-02 15:32:12

标签: java java.util.scanner

给出无效输入时,程序仅返回“请输入有效输入”。在一个奇数输入上,所以第一个,第三个,依此类推。

apple

这是我正在上课的班级。

Welcome to ConversionKiosk by: xxx xxx.
Please deposit any number of coins and follow the number by the name of the coin
Valid coin names are quarters, dimes, nickels, and pennies.
Please enter 'Cashout' to complete the transaction.
poo
Please enter a valid input.
poo
poo
Please enter a valid input.

每次添加新输入时,是否有任何方法可以检查输入?

2 个答案:

答案 0 :(得分:1)

您可以使用更小,更简单的程序测试逻辑;例如,您可以尝试仅接受美分的版本。这将使问题更加明显。本质上,您的代码如下所示:

while not bored,
  1. ask for coins
  2. process each coin type
     or if nothing processed, complain
  3. check for cashout

您可能打算使用

while not bored,
  1. ask for coins
  2. process each coin type
     or if nothing processed, complain and go back to step 1 <--- !
  3. check for cashout

检测到错误时,可以使用continue语句来实现此目的:

    else {
        System.out.println("Please enter a valid input.");
        continue; // <-- repeats loop from beginning, skipping remaining code
    }

此外,就目前而言,您没有提供有关兑现的反馈。用户期望在第3步中使用press enter to continue, or write "cashout" to exit


请注意,代码还存在其他一些问题,例如多余的代码,处理复数形式以及可以将其重写为更短和更易读的事实。您可能希望将其发布在codereview上,以获得有关如何重写它的专家反馈。

答案 1 :(得分:0)

此异常的原因是,在输入错误时,您将再次读取输入并将其分配给另一个变量。之后,您要在Orders循环的第一行中向用户询问其他输入。

要解决此问题,请删除Customers Module变量,然后使用

检查退出条件
orders-list.component

因此,来自用户的所有输入都存储在变量do-while中。您不需要额外的退出条件。