循环时无法退出(嵌套) - Java

时间:2013-05-08 11:49:52

标签: java

我正在尝试创建一个(非常)简单的菜单/子菜单导航系统,类似于(非常)基本的在线购物应用程序。
我得到的问题是,一旦我进入子菜单(通过在顶级菜单中输入2),我就无法离开子菜单;即使进入3或4.我不确定为什么会这样,任何帮助都会受到赞赏。

       while (subChoice != 3 || subChoice != 4) {
            subMenu();
            subChoice = getChoice(1, 4);
            if (subChoice == 1) {
                // Add items
                System.out.println("add");
            } else if (subChoice == 2) {
                // Remove items
                System.out.println("delete");
            } else if (subChoice == 3) {
                // Check out
                System.out.println("check out");
            } else if (subChoice == 4) {
                // Discard cart
                System.out.println("discard");
            }
        }

1 个答案:

答案 0 :(得分:2)

while (subChoice != 3 || subChoice != 4) {正在测试subChoice NOT 3还是 NOT 4.它不能同时进行,所以循环永远不会结束。要解决此问题,请使用以下任一方法之一:

while (subChoice != 3 && subChoice != 4) {
    ...
}
while (!(subChoice == 3 || subChoice == 4)) {
    ...
}