输入不正确时如何继续运行方法

时间:2018-09-23 13:27:26

标签: java validation input java.util.scanner

大家好,我刚刚开始用Java编程,但是我有一个问题,我正在制作一个游戏,如果用户将数字放在1以下或9以上,则用户需要输入1到9之间的数字。错误,用户需要再次输入数字,但是当用户输入无效数字时,程序会给出错误并停止工作,我该如何解决?

我的代码

 public void game()
{

    Scanner inputnumber = new Scanner(System.in);

    System.out.println("Please select a number (1-9): ");
    int number = inputnumber.nextInt();
   if (number <1 || number > 9)
   {
       System.out.println("Please select a number: " + number);
       System.out.println("This value is out of range. Please enter a value between 1 and 9.");

       while (number <1 || number > 9)
       {
           return;
       }
   }
   else{
       System.out.println("That is a valid entry!");
   }
}

}

2 个答案:

答案 0 :(得分:0)

这也可以达到目的。

import java.util.Scanner;
class Main {
  public static void main(String[] args) {
    Scanner inputnumber = new Scanner(System.in);
    int n;
    do{
      System.out.println("Please select a number (1-9): ");
      n = inputnumber.nextInt();
    } while ( n >= 1 && n <= 9);
  }
}

您可以为此使用do while循环。 待办事项处理异常以支持您的用例。

答案 1 :(得分:-1)

您可以尝试的一件事是使用try catch块。

例如:

public class ab {
    int inputNumber;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        takeInput();    
    }
    public static void takeInput()
    {
        Scanner inputnumber = new Scanner(System.in);

        System.out.println("Please select a number (1-9): ");
        try {
                int number = inputnumber.nextInt();
                if (number >=1 && number <=9) {
                    System.out.println("Valid Number");
                }
                else
                {
                    takeInput();
                }
        }
        catch (Exception e) {
            // TODO: handle exception
            System.out.println("Invalid number");
            takeInput();
        }
    }
}