有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    //Keep requesting Vehicle details from user
    while(user wants to keep going)
    {
        boolean userQuit = false
    
        //Continue requesting Vehcile type until valid OR until user wants to quit
        while(user has not entered Q or valid car type)
        {
            answer = prompt user to enter type with your Dialog
    
            if(answer entered is "q")
            {
                userQuit = true
                break;
            }
            else if(answer IS one of the vehicle types)
            {
                Assign answer to vehicle type
                break;
            }
        }
    
        if(userQuit)
                break;
    
        //The rest of your code. Make sure to set userQuit back to false
    }
    

    好的,我们这里有一些基本的伪代码,你应该改变事件的顺序。在检查输入是否有效之前,先看看我是如何要求用户输入的。这意味着在第二次时,它会再次询问

    如果他们没有输入有效数据,您需要决定要做什么。我可能会围绕对话框提示和if语句编写一个while循环,以确定输入是否有效,如果无效,请再次询问

    在阅读了Yitzih的评论后,值得注意的是,在确认车型有效后,您需要申请该车型。我用另一个while循环编辑了代码,以便更容易地看到需要什么

    我也同意使用“Q”作为退出条件并不是特别好,但如果这是留给您的设计决策,那么上面的伪代码将满足这一需求