Java编程不能让我的while语句循环

时间:2016-11-01 00:46:49

标签: java

我正在尝试让用户提供输入,然后在所有案例的所有内容都被读出后,重新循环到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;
}    

1 个答案:

答案 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();