ここに、ユーザー入力が数値であるか範囲内であるかを確認する関数があります。
public static int getNumberInput(){
Scanner input = new Scanner(System.in);
while(!Inputs.isANumber(input)){
System.out.println("Negative Numbers and Letters are not allowed");
input.reset();
}
return input.nextInt();
}
public static int getNumberInput(int bound){
Scanner input = new Scanner(System.in);
int val = getNumberInput();
if(val > bound){
System.out.println("Maximum Input is only up to: "+ bound+" Please Try Again: ");
input.reset();
getNumberInput(bound);
}
return val;
}
この関数でgetNumberInput(int bound)メソッドを呼び出すたびに
public void askForDifficulty(){
System.out.print("Difficulty For This Question:\n1)Easy\n2)Medium\n3)Hard\nChoice: ");
int choice = Inputs.getNumberInput(diff.length);
System.out.println(choice);
}
範囲外の数値を挿入した場合、最大数は5のみであるとしましょう。getNumberInput(intbound)はそれ自体を再度呼び出します。正しい値または範囲内の値を挿入すると、挿入した最初の値/前の値のみが返されます