Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 执行一项功能后,如何让控制台菜单重复,以便在不关闭程序的情况下执行另一项功能?_Java_Menu_Console_Repeat - Fatal编程技术网

Java 执行一项功能后,如何让控制台菜单重复,以便在不关闭程序的情况下执行另一项功能?

Java 执行一项功能后,如何让控制台菜单重复,以便在不关闭程序的情况下执行另一项功能?,java,menu,console,repeat,Java,Menu,Console,Repeat,我设置了一个控制台菜单,如下所示: int userOption = printMenu(sc); while(userOption != 6){ switch(userOption) { case 1: //function 1 break; case 2: //function 2 break; case 3: //function 3 break; case 4: //function 4 break; case 5: //f

我设置了一个控制台菜单,如下所示:

int userOption = printMenu(sc);
while(userOption != 6){
switch(userOption) {
case 1: //function 1
        break;
case 2: //function 2
        break;
case 3: //function 3
        break;
case 4: //function 4
        break;
case 5: //function 5
        break;
case 6: //
        break
default: //statement asking for valid option
  }
}
然而,当我运行它时,它只允许我正确地执行我想要的方法一次,而不是返回到我的菜单,允许我继续使用我刚才使用的函数之上的其他函数,它只是不断重复我使用的原始函数


有谁能帮我一下,给我一些建议吗?

从这里给出的内容来看,您似乎没有得到其他用户的输入。要解决这个问题,您需要在执行循环后获得另一个userinput

int userOption = printMenu(sc);
while(userOption != 6) {
    switch(userOption) {
        case 1: //function 1
                break;
        case 2: //function 2
                break;
        case 3: //function 3
                break;
        case 4: //function 4
                break;
        case 5: //function 5
                break;
        case 6: //
                break
        default: //statement asking for valid option
    }
    userOption = printMenu(sc);
};
作为补充: 要保存双输入,只需将循环重写为do while循环:

int userOption = 0;
do {
    userOption = printMenu(sc);
    switch(userOption) {
        case 1: //function 1
                break;
        case 2: //function 2
                break;
        case 3: //function 3
                break;
        case 4: //function 4
                break;
        case 5: //function 5
                break;
        case 6: //
                break
        default: //statement asking for valid option
    }
} while(userOption != 6);

添加到您的注释中,您可能不会再次将值存储到userOption中,而只是请求输入。

我会盲目地猜测,在您执行一次userinput后,您不会获得另一个userinput。我确实会被请求获得另一个用户输入,但无论我输入什么,它都只会执行使用的原始功能。例如,如果我选择函数1并完成它,它将要求我选择另一个选项,但无论我输入了什么数字,它都将执行函数1,现在使用do while循环修复了它,谢谢。我现在明白了,我是在要求输入,但因为它没有正确循环,所以它没有存储它。@espexplorer117如果这个答案对解决您的问题有用,请将它标记为答案,以帮助未来的用户。。。