我正在开展一个必须计算抵押贷款的项目。它应该有一个贷款选择菜单,其中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
答案 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
中讨论了带标签的断言
答案 2 :(得分:0)
你得到了正确的逻辑,原因是for循环。
while (programSelection == true)
只会在for循环后执行。需要谨慎,因为如果loanArray
长度为1,您可能认为代码运行良好,实际上并非如此。