Java 为什么我不能退出这个while循环?

Java 为什么我不能退出这个while循环?,java,loops,input,while-loop,Java,Loops,Input,While Loop,我们的项目主要包括阅读有关英超联赛的文件并返回1。游戏结果,2。赛程还有待打,还有3场。排行榜(表)。我在命令行中显示一个菜单,并从那里接收用户输入。我使用while循环将userinput与要显示的输出相匹配,但我想说,如果他们没有输入1、2或3,则会出现错误,并再次显示菜单,并要求他们输入另一个输入。然而,现在如果我输入1、2或3,它不会显示我的结果,我无法跳出while循环。有人能帮我吗?这是我的密码 while(userInput == false) { Scan

我们的项目主要包括阅读有关英超联赛的文件并返回1。游戏结果,2。赛程还有待打,还有3场。排行榜(表)。我在命令行中显示一个菜单,并从那里接收用户输入。我使用while循环将userinput与要显示的输出相匹配,但我想说,如果他们没有输入1、2或3,则会出现错误,并再次显示菜单,并要求他们输入另一个输入。然而,现在如果我输入1、2或3,它不会显示我的结果,我无法跳出while循环。有人能帮我吗?这是我的密码

while(userInput == false)
    {
        Scanner input = new Scanner(System.in);
        String pattern = "[1-3]{1}";
        String userChoice;
        System.out.println(menuOptions);
        userChoice = input.nextLine();
        if(userChoice == "1")
        {
            System.out.print(outcomesResults);
            userInput = true;
        }
        if(userChoice == "2")
        {
            System.out.print(fixturesResults);
            userInput = true;
        }
        if(userChoice == "3")
        {
            System.out.print(leaderboardResults);
            userInput = true;
        }
        else if(!userChoice.matches(pattern))
        {
            System.out.println();
            System.out.println("Error: unidentified selection. Please choose 1,2 or 3");
            userInput = false;
        }
    }

如果要比较字符串值,应使用:

userchoice.equals(“1”)
if (userChoice.equals("1")) {
   // do something
}