Edward_Xie
2016-08-10 17:18
while (true) {
try {
player1.ID = console.nextInt();
} catch (Exception e) {
System.out.println("请输入数字ID!");
continue;
// TODO: handle exception
}
break;
}
这里定义的player1.ID是int型的,希望达到的效果是输入非数字型时提示用户“请输入数字ID”,通过continue进行下一轮循环以便重新输入,可是这个代码当我输入非数字时,程序不断的循环打出“请输入数字ID”,无限循环,直接跳过 了输入步骤,这是为什么呢?
0.0,,这就不是回复楼了吧 233333
用Scanner接收键盘输入的值,如果发生异常会一直返回这个异常值,这里要用String接收然后转成int.
try {
String str = console.next();
int id = Integer.parseInt(str);
} catch (Exception e) {
System.out.println("请输入数字ID!");
continue;
}
因为try是执行一个方法,catch只是捕获异常,不要用coutinue,要实现你的功能,你可以在catch块里加一个if判断,然后直接抛出一个异常,然后用finally来处理。代码修改如下:
public void 类(){
try {
int player1.ID = console.nextInt();
if(//你自己实现判断,输入的不是数字){
Exception e=new Exception();
throw e;
}
} catch (Exception e) {
System.out.println("请输入数字ID!");
}finally{
类 对象名 =new 类(); //在本类中创建一个对象
对象名.类();
}
}
Java入门第三季
409792 学习 · 4340 问题
相似问题
回答 1
回答 1