如何正确清除扫描仪以防止输入循环额外的时间?

How to properly clear a scanner to prevent the input from looping an extra time?

提问人:Nathan Allie 提问时间:4/1/2023 更新时间:4/1/2023 访问量:40

问:

我正在为宠物店制作一个基本菜单,在我正在编写的程序中,您可以拥有多只宠物并从这家商店购买它们。我在命令行上运行此菜单并尝试使用 获取用户输入,发生的事情是菜单第二次重复,但是在第二个循环中键入任何内容似乎什么也没做,程序继续。互联网搜索建议我需要使用 a 清除扫描仪,但这似乎也无法解决它。如果您需要更多代码,请告诉我,但这应该足够了,我是编程新手,所以要温柔scan.nextInt()scan.nextLine()


    public Pet showMenu()
    {

        
        Scanner scan = new Scanner(System.in);
        int result = 10;
            
        while(true)
        {

            System.out.println("Welcome to the pet store: ");
            System.out.println("Please pick a pet ");
            for (int i = 0; i < availablePets.size(); i++)
            {
                System.out.println(i + ")");
                availablePets.get(i).printStats();
                System.out.println();

            }//End for
            try
            {

                System.out.println("Which pet would you like? (Type any other number to quit)");
                result = scan.nextInt(); 
                scan.nextLine();    
                if (result >= 0 && result <= 3)
                {
        
                    Pet tempPet = availablePets.get(result);
                    availablePets.remove(result);
                    return tempPet;
                }
                else
                {

            
                    Pet quitObj = new Pet("Quit");
                    return quitObj;     
                

                }

            }
            catch (Exception e)
            {

                System.out.println(e.getMessage());

            }
        }
      }

输出

java oop while-loop 菜单 java.util.scanner

评论

0赞 Old Dog Programmer 4/1/2023
这个问题的答案有帮助吗?stackoverflow.com/questions/13102045/......

答: 暂无答案