I have a function here where it verifies the user input if its a number or within bounds.
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;
}
Each time I call getNumberInput(int bound) method with this function
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);
}
if I inserted an out of bound number lets say the only maximum number is 5. the getNumberInput(int bound) will call itself again. and when I insert the correct or within bound value it will only return to me the first value/previous value I inserted
The
if
in thegetNumberInput(int bound)
should be awhile
. EDIT You should also combine the two methods: