public static void main(String[] args) {
int xuan;
Scanner in=new Scanner(System.in);
while (true) {
System.out.println("请选择A冒险,B查看人物属性,C恢复体力");
System.out.println("=====================================");
try{
xuan = in.nextInt();
if (xuan==1) {
System.out.println("1");
} else if (xuan==2) {
System.out.println("2");
} else if (xuan==3) {
System.out.println("你的血和魔法值都已恢复到满值状态!");
System.out.println("=====================================");
} else {
System.out.println("你的选择有误!");
}
}catch(Exception e){
//in=new Scanner(System.in);
System.out.println("11");
}
}
}
很简单么,在try中会抛异常的语句就是xuan = in.nextInt();
就是拿到的数据不是int,不能赋给xuan,
所以要在catch中对in重新初始化一下,就像在程序一开始的地方。
不然的话,xuan = in.nextInt();会一直抛异常。
我也遇到过这种情况,现在有解决方法了 多谢了
当异常时,不执行异常抛出,把他当成的if else这样条件语句来处理
在catch里加上:in.next(); // 读取下一个值
在catch里加上:in.next(); // 读取下一个值