我试图在java中退出while循环(同时也使用for循环)

时间:2016-04-07 23:22:52

标签: java arrays for-loop exit do-while

我正在开展一个必须计算抵押贷款的项目。它应该有一个贷款选择菜单,其中1)使用默认值来计算抵押贷款。 2)将允许用户输入自定义值。 3)允许用户退出程序并显示计算值。我有一个for循环允许程序运行最多10次(虽然它可以少)。当我选择3时,我正在使用do-while循环退出程序。然而它并没有退出。我不确定出了什么问题,我希望得到一个解释和一些我可以实现的调整,以确保它做到它应该做的。

        do
        {
            int selection = 0;
            for(int i=0; i<loanArray.length; i++)
            {   
                System.out.println("Please choose from the following choices below: ");
                System.out.println("\t1) Promotional Loan (preset loan amount, rate, term)");
                System.out.println("\t2) Unique Loan (enter in loan values)");
                System.out.println("\t3) Quit (Exit the program)");

                System.out.println("Please enter your selection(1-3): ");
                selection = s.nextInt();

                if(selection ==1)
                {
                    loanArray[i] = new Mortgage();
                    System.out.println(loanArray[i].toString());
                }
                else if (selection ==2)
                {
                    loanArray[i].storeLoanAmount();
                    loanArray[i].storeInterestRate();
                    loanArray[i].storeTerm();
                    System.out.println(loanArray[i].toString());
                }
                else if(selection == 3)
                {
                    programSelection = false;
                    programRunning = false;
                }
            }//end of for array loop
        }while (programSelection == true);  //end of selection while loop

        System.out.println("Exit Test");    //print statement to test if selection screen exited

3 个答案:

答案 0 :(得分:0)

break;

之后添加programRunning = false;

答案 1 :(得分:0)

我实际上没有对此进行测试,但我认为问题是退出for循环。测试的最快方法就是使用带有标签的break语句。

    outerLoop:
    do
    // ...
            else if(selection == 3)
            {
                break outerLoop;
            }
        }//end of for array loop
    }while (programSelection == true);  //end of selection while loop

Java tutorial.

中讨论了带标签的断言

答案 2 :(得分:0)

你得到了正确的逻辑,原因是for循环。

while (programSelection == true) 

只会在for循环后执行。需要谨慎,因为如果loanArray长度为1,您可能认为代码运行良好,实际上并非如此。