我正在尝试让用户提供输入,然后在所有案例的所有内容都被读出后,重新循环到output.displayMainMenu();
,直到他们输入4退出程序。 / p>
output.displayMainMenu();
int entry = keyboard.nextInt();
while(entry >= 1 || entry <=4) {
output.displayMainMenu();
switch(entry) {
case 1:
output.displayStockChoices(portfolio);
portfolio.editPostion();
portfolio.displayPositions();
break;
case 2:
portfolio.updateCurrentPrice();
break;
case 3:
System.out.print(investor.toString() + "Account Balance: " +portfolio.calcTotalAccountValue());
break;
case 4:
System.out.print("Done.");
break;
default:
System.out.print("please enter 1-4!");
}
break;
}
答案 0 :(得分:0)
使用do-while循环更好,因为循环内的代码至少需要运行一次。我同意@AntonH,这是本代码中的几个问题。考虑到上述问题,我重写了它。
int entry = 0;
do {
output.displayMainMenu();
try {
entry = keyboard.nextInt();
} catch (InputMismatchException e) {
System.out.print("Invalid input. ");
}
switch (entry) {
case 1:
output.displayStockChoices(portfolio);
portfolio.editPosition();
portfolio.displayPositions();
break;
case 2:
portfolio.updateCurrentPrice();
break;
case 3:
System.out.print(investor.toString() + "Account Balance: "
+ portfolio.calcTotalAccountValue());
break;
case 4:
System.out.print("Done.");
break;
default:
System.out.print("please enter 1-4!");
}
} while (entry >= 1 && entry < 4);
// Don't forget to close Scanner object when program finish
keyboard.close();