Java从键盘得到正确的输入

  • 本文关键字:键盘 Java java input
  • 更新时间 :
  • 英文 :


我需要用户从键盘上输入数字1-5或9,并希望保持提示,直到他们输入正确的数字。下面是我的代码:

String taskInput = kb.nextLine();
Scanner kbString = new Scanner(taskInput);
boolean validInput = false;
boolean validSelection;

while(!validInput){
validSelection = false;
while (!kbString.hasNextInt()){
System.out.print("Please enter a task number; "); 
taskInput = kb.nextLine();
kbString = new Scanner(taskInput);
}

while(!validSelection){        
if(kbString.hasNextInt()) {
nextTask = kbString.nextInt();
if(nextTask < 1 || (nextTask > 5 && nextTask != 9)) {                         
validSelection = true;
}else{
validInput = true;
validSelection = true;
}                    
}
}
}

这是有效的,但我发现它有点令人困惑,因为我们需要设置validSelection = true,即使当用户输入一个坏的数字,例如7。有没有更干净的方法?

我想到了一个更好的方法:

boolean valid = false;
while (!valid) {            
valid = kb.hasNextInt() ;
if (valid) {
nextTask = kb.nextInt();
if(nextTask < 1 || (nextTask > 5 && nextTask != 9)) {
System.out.print("please enter task number (1-5, or 9); ");
valid = false;
}
}
else {
System.out.print("Please enter a valid number");
}
kb.nextLine();
}

最新更新