在我们编写的大部分代码中,都需要用户进行输入,如果没有输入前验证的话,用户的任意一个随意输入都会造成代码的崩溃,为了避免读取用户的无效输入,输入验证对每个程序都是必要的。
例如程序需要输入一个小数:
在此介绍三种验证输入的思路: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();