代码如下: static void scannerme(){
Scanner kScanner =new Scanner(System.in);
System.out.print("输入一段文字:");
String nInput=kScanner.nextLine();
System.out.println("您输入的是:"+nInput);
kScanner.reset();
try {
System.out.print("输入一个数字:");
int d=kScanner.nextInt();
System.out.println("您输入的数字是:"+d);
} catch (Exception e) {
// TODO: handle exception
System.out.print("输入一个数字:");
                        kScanner.reset();
int d=kScanner.nextInt();
System.out.println("您输入的数字是:"+d);
}
}这个代码执行后,如果我第一个输入字符串,第二个输入数字,可以正常执行
而我如果第一个输入字符串,第二个输入字符串,就会出错。我的问题是,如果我的catch里面的代码还出错,可不可以重复要求用户输入?
如果用catch嵌套的话,或许可以解决一定次数的重复错误的更正,但是如果我不停的输错的结果呢?求大神指导。

解决方案 »

  1.   

    第一个接受是
     String nInput=kScanner.nextLine(); 
    第二个接受是
    int d=kScanner.nextInt(); 
    第二个接受值为int当然会报错
    稍微了改了一下,应该是你需要的public static void main(String[] args) {
    Scanner kScanner = new Scanner(System.in);
    System.out.print("输入一段文字:");
    String nInput = kScanner.nextLine();
    System.out.println("您输入的是:" + nInput);
    kScanner.reset(); while (true) {
    try {
    System.out.print("输入一个数字:");
    int d = kScanner.nextInt();
    System.out.println("您输入的数字是:" + d);
    break;
    } catch (Exception e) {
    kScanner.next();
    System.out.println("输入格式不对,请重新输入");
    }
    }
    }