上周学了下java中的异常遇到些问题,分享出去给大家参考下
直接上代码
错误的代码:
Scanner sc = new Scanner(System.in);
while(true){
try {
int x = sc.nextInt();
} catch {
System.out.println("输入错误,请重新输入!")
}
}
原因:当输入正确的时候肯定没有任何问题,可是当输入错误的话,就会一直出现 “输入错误,请重新输入”
因为当你输入错误开始下一次循环时,此时的数据还停留在缓冲区上,并没有清除,这时继续解析异常,就又catch到exception,还是错误,于是这个过程就一直重复下去了。
解决办法:
- 在添加sc.next();
- 把输入写在循环中;
//这是第一种解决办法
while(true){
Scanner sc = new Scanner(System.in);
try {
int x = sc.nextInt();
} catch {
System.out.println("输入错误,请重新输入!")
}
}
Scanner sc = new Scanner(System.in);