java while循环没有循环到正确的位置
这就是我遇到的问题: while循环不会循环回我想要的位置,它应该在用户完成第一次输入后提示输入车辆类型,但会返回到英里数
String vehicleType = JOptionPane.showInputDialog(
"Enter the type of vehicle or Q to quit ");
while (!vehicleType.equalsIgnoreCase ("Q")) {
if (!(vehicleType.equalsIgnoreCase ("car")
|| vehicleType.equalsIgnoreCase ("truck")
|| vehicleType.equalsIgnoreCase ("suv")
|| vehicleType.equalsIgnoreCase ("motorcycle")))
{
validData = false;
vehicleType = JOptionPane.showInputDialog(
"Please enter a valid vehicle type from the assigned list ");
}
else {
validData = true;
do {
try {
milesTraveled = Double.parseDouble (JOptionPane.showInputDialog
(null, "Enter number of miles to be traveled ")); }
catch (NumberFormatException e)
# 1 楼答案
好的,我们这里有一些基本的伪代码,你应该改变事件的顺序。在检查输入是否有效之前,先看看我是如何要求用户输入的。这意味着在第二次时,它会再次询问
如果他们没有输入有效数据,您需要决定要做什么。我可能会围绕对话框提示和if语句编写一个while循环,以确定输入是否有效,如果无效,请再次询问
在阅读了Yitzih的评论后,值得注意的是,在确认车型有效后,您需要申请该车型。我用另一个while循环编辑了代码,以便更容易地看到需要什么
我也同意使用“Q”作为退出条件并不是特别好,但如果这是留给您的设计决策,那么上面的伪代码将满足这一需求