在我们编写的大部分代码中,都需要用户进行输入,如果没有输入前验证的话,用户的任意一个随意输入都会造成代码的崩溃,为了避免读取用户的无效输入,输入验证对每个程序都是必要的。
例如程序需要输入一个小数:
在此介绍三种验证输入的思路:do-while实现,return实现和break实现。
- 使用do-while验证输入
do-while是一种后测试循环,即无论如何都会先运行一次循环,即使不满足测试条件
以下为使用do-while循环不断读取输入,直到用户的输入有效为止的实现方法:
Scanner scanner = new Scanner(System.in);
boolean okay;
do {
System.out.println("Please entry a number!);
if(scanner.hasNextDouble){
okay = true;
} else{
okay = false;
String word = scanner.next();
System.out.println(word + "is not a number,Please entry again!)
} while(!okay);
double x = scanner.nextDouble();
- 使用return语句
return语句允许还未到达末尾就终止方法,因此在用户非法输入时可以使用return语句以防非法输入造成的错误:
Scanner scanner = new Scanner(System.in);
System.out.println("Please entry a number!);
if(!scanner.hasNextDouble){
String word = scanner.next();
System.out.println(word + " is not a number);
return;
}
double x = scanner.nextDouble();
- 使用break语句
break的作用是跳出本次循环,当用户的输入非法时,程序执行到break语句就退出本次循环,这样一样可以起到验证输入的作用
Scanner scanner = new Scanner(System.in);
while(true){
System.out.println("Please entry a number!);
if(scanner.hasNextDouble()){
break;
}
String word = scanner.next();
System.out.println(word + "is not a number");
}
String x = scanner.netDouble();