应该是这么写的,要用nextline方法:
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(true){
try{
String line = scan.nextLine();
int i = Integer.parseInt(line);
System.out.println(i);
break;
}catch(Exception e){
continue;
}
}
}
}
nextInt()
方法只有当输入中有整数时,才会从输入参数中取出输入值,否则就会报异常,而你这里catch了异常,并执行下一个循环,实际上下一次还是用的10.1
这个参数,接着又报异常,就死循环了。
改成这样:
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String param;
int i;
while (true) {
try {
param = in.next();
i = Integer.parseInt(param);
break;
} catch (Exception e) {
e.printStackTrace();
System.out.println("请输入整数:");
}
}
System.out.println("输入的整数是:" + i);
}