如何在Thread.sleep期间阻止某人在Java中键入用户输入

时间:2016-10-03 20:53:39

标签: java thread-sleep

因此,在此代码中,main方法不断重复自身。我知道原因,但我不知道如何解决它。

具体来说,正在发生的事情是在给出答案之后有一个Thread.sleep(我正在制作一个计算器,所以答案可能就像“总和:4”)并且用户可以Thread.sleep内的垃圾邮件。该程序认为他们仍在尝试输入一种类型的数学问题(因为你输入加法,减法或乘法),然后它重复两次主要问题。

这是添加方法:

private static void Addition() {

    Scanner inputa = new Scanner(System.in);

    System.out.println("How many numbers would you like to add?");
    int outputa = inputa.nextInt();

    int sum = 0;
    for(int countera = 0; countera < outputa; countera++) {

        try  {
            System.out.println("Number " + (countera + 1) + ":");

            sum += inputa.nextInt();
        }
        catch(InputMismatchException ex) {

            System.out.println("Not a valid integer.");

            try {

                Thread.sleep(2000);

            } 
            catch (InterruptedException e) {

                System.out.println("Error occured.");

            }

            String[] args = {};
            MiriMain.main(args);

        }

    }

    System.out.println("Sum: " + sum);

    try {

        Thread.sleep(2500);

    }
    catch(InterruptedException Ex) {

        Thread.currentThread().interrupt();

    }

    String[] args = {};
    MiriMain.main(args);//MiriMain is the main method

}

因此,在睡眠状态下,用户仍然可以输入。当Thread.sleep仍处于激活状态时,如何阻止此人输入内容?任何答案都有帮助。

感谢。

`

0 个答案:

没有答案