java用户输入不合法时(如非数字、超出范围), 提示重新输入
时间: 2024-09-11 16:04:51 浏览: 153
当在Java程序中处理用户输入并且需要验证其有效性时,如果用户的输入不符合预期条件(例如,不是数字或数值不在期望范围内),通常的做法是捕获异常并向用户显示友好的错误消息,然后提供一个机会让他们重新输入。这可以使用`try-catch`块和`Scanner`类完成,下面是一个简单的示例:
```java
import java.util.InputMismatchException;
import java.util.Scanner;
public class InputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number;
while (true) {
try {
System.out.print("请输入一个整数:");
number = scanner.nextInt(); // 接收用户输入
if (isValidInput(number)) { // 如果输入有效
break; // 退出循环
} else {
System.out.println("输入无效,请输入一个整数。");
}
} catch (InputMismatchException e) { // 输入不是整数时
System.out.println("输入无效,请输入一个整数。");
scanner.next(); // 清除异常后的前缀字符
}
}
System.out.println("您输入的数是:" + number);
scanner.close();
}
private static boolean isValidInput(int input) {
// 根据业务需求判断输入是否合理,这里仅作示例,比如判断是否大于0
return input > 0;
}
}
```
在这个例子中,如果用户输入的不是整数或者输入的值不符合业务规则,程序会捕获`InputMismatchException`并提示用户重新输入。你可以根据实际需要修改`isValidInput`函数来检查输入的有效性。
阅读全文