Java 嵌套的while循环以及首次运行后如何访问内部循环

Java 嵌套的while循环以及首次运行后如何访问内部循环,java,while-loop,nested,Java,While Loop,Nested,所以我试着用一个子菜单做一个菜单。所以我的第一个想法是嵌套的while循环。所以我做了一个小程序来尝试我的想法,我显然错了 当我运行此代码时 public static void main(String[] args){ int i = 1; int j = 1; while(i != 2){ i = Kbd.readInt("1 to go to inner 2 to exit"); w

所以我试着用一个子菜单做一个菜单。所以我的第一个想法是嵌套的while循环。所以我做了一个小程序来尝试我的想法,我显然错了

当我运行此代码时

    public static void main(String[] args){
        int i = 1;
        int j = 1;

        while(i != 2){
            i = Kbd.readInt("1 to go to inner 2 to exit");

            while(j != 2){
                j = Kbd.readInt("1 to continue 2 to exit to outer");
            }

        }
    }
}
我可以“访问”子菜单并根据需要无限次运行,直到退出(如果我按2) 但是当我在内部循环开始时,我似乎不能再次访问内部循环了

我想知道我是不是想错了,或者我该怎么做有什么建议


(Kbd类是我们类的扫描器)

当然,你不能重新进入内部循环,因为离开循环时j总是2,外部永远不会改变

考虑在循环中局部保持j

while (i != 2)
{
    int j = 1 ;
    while (j != 2)
        ...
}

修复此错误后,您将发现下一个错误。如果在第一个getInt()中按2会发生什么?你真的想进入内部循环吗,不管i的值是多少?用户提示提示有不同的提示。

Add
j=1在外循环的末尾。我将
int j=1
在第二个
循环的上方移动一行,而
循环–它使那行代码更接近它的使用位置,这通常是一种很好的风格,也使它更具可读性:定义j,将其设置为1,使用j输入一个循环。是的,在我修复了这个之后,我很容易地修复了它:)