日期:2014-05-20  浏览次数:20677 次

求助java输入输出的问题
代码如下:

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嵌套的话,或许可以解决一定次数的重复错误的更正,但是如果我不停的输错的结果呢?求大神指导。

------解决方案--------------------
第一个接受是
 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("输入格式不对,请重新输入");
}
}
}