执行到catch时,再执行后面的“继续吗”时,从键盘上输入不进去为什么?应该怎么解决?
还有如果把“继续吗?”代码放到catch块中后面就报错了,为什么?
后面的改为“ji=input.next();”
因为出异常了,程序就退出了,你不应该用异常来控制流程。
Scanner input = new Scanner(System.in);
String ji = "y";
do{
String str = input.nextLine();
if(str.length() != 1 ||
str.charAt(0) <'1' ||
str.charAt(0) > '9'){
System.out.println("请输入一位数字");
continue;
}
int number = str.charAt(0);
switch (number) {
case 1:
System.out.println("C#");
break;
case 2:
System.out.println("JAVA");
break;
case 3:
System.out.println("SQL");
break;
default:
System.out.println("你输入了大于三的数");
break;
}
System.out.println("继续吗?(y/n):");
ji = input.nextLine();
if("n".equals(ji)){
break;
}
}while(true);
int number = Integer.valueOf(str);才对,上面的那个把ansi码值给了number不对。改过来就好了
到catch里这个方法就执行完了,你要想继续执行,试一下,把代码放finally