JAVA 的try-catch小问题

图片说明

执行到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