我正在研究具有数据验证功能的贷款计算器。我已经写了一切,一切顺利。我唯一不知道的是如何在用户被问到“继续y / n ?:”的地方编写一个while循环,然后让该程序仅在用户键入y / Y时继续执行,而该程序仅在用户键入ENDS时结束。输入n / N,其他任何输入都应显示错误消息,例如“无效,您只能输入Y或N”。因此,如果用户输入“ x”,它将显示错误消息。

我尝试过else if子句,我也尝试过使用程序其余部分中使用的方法来验证数据,但是我根本不知道如何验证字符串。我只能用原始数据类型来做到这一点。

到目前为止,这是我知道如何编写循环的唯一方法,问题是它只会以Y以外的任何形式结束程序。

分配的一个选项是使用JOptionPane,但我不知道如何将其合并到while循环中,并使其显示yes和no按钮。

    String choice = "y";

    while (choice.equalsIgnoreCase("y")) {

    // code here

    System.out.print("Continue? (y/n): ");
        choice = sc.next();
    }
   }

最佳答案

本质上,您需要两个循环:一个循环进行工作,另一个循环在内部提示用户验证。

boolean isContinuing = true;

while (isContinuing) {
    // do work

    boolean inputIsInvalid = true;
    while (inputIsInvalid) {
      System.out.print("Continue? (y/n): ");

      String choice = sc.next();

      if ("y".equalsIgnoreCase(choice)) {
          inputIsInvalid = false;
      }
      else if ("n".equalsIgnoreCase(choice)) {
          inputIsInvalid = false;
          isContinuing = false;
      }
      else {
          System.err.print("Error: Only valid answers are Y/N.");
      }
    }
}


节点:我使用的是布尔变量而不是break语句,这使代码更加直观易懂。

关于java - 用Java中的Continue选项连接while循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14664031/

10-10 14:03
查看更多