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



我试图让用户给出输入,然后在所有案例都被读出给他们之后,重新循环到output.displayMainMenu();,直到他们输入4退出程序。

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;
}    

最好使用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();

最新更新