阿里巴巴P8技术专家 2016-11-28 11:12 采纳率: 0%
浏览 874

JAVA 的try-catch小问题

图片说明

执行到catch时,再执行后面的“继续吗”时,从键盘上输入不进去为什么?应该怎么解决?
还有如果把“继续吗?”代码放到catch块中后面就报错了,为什么?
后面的改为“ji=input.next();”

  • 写回答

3条回答 默认 最新

  • 青春逝如流水 2016-11-28 12:29
    关注

    因为出异常了,程序就退出了,你不应该用异常来控制流程。

    
    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);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类