我正在研究具有数据验证功能的贷款计算器。我已经写了一切,一切顺利。我唯一不知道的是如何在用户被问到“继续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/