具体代码如下,结果陷入了死循环!请问该如何修改?
package com.wrx.six;
import java.util.*;
public class Test { /**
 * 输入限制为int数字,不是int数字重新输入
 */
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
while (true){
try{
System.out.println("请输入一个整数:");
int num=input.nextInt();
break;
}
catch(InputMismatchException e){
System.out.println("必须输入整数!请重新输入:");
}
}
}
}

解决方案 »

  1.   

    import java.io.IOException;
    import java.util.InputMismatchException;
    import java.util.Scanner;public class Test { /**
     * 输入限制为int数字,不是int数字重新输入
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
    Scanner input = new Scanner(System.in);
    int num = 0;

    while (num == 0) {
    try {
    System.out.println("请输入一个整数:");
    num = input.nextInt();
    } catch (InputMismatchException e) {
    System.out.println("必须输入整数!请重新输入:");
    input.nextLine(); // 吃掉回车
    }
    }

    }
    }
      

  2.   

    请问input.nextLine();这句话是什么意思?为什么加上之后就可以了呢?我是新人刚刚开始学习java,请多多指教啊!
      

  3.   

     num = input.nextInt();
    要读取这个整数,必须是输入一个整数,然后再按下回来才能读取。
    input.nextInt()只是读取了整数,但是回车还没有读取,所以用此句把回车吃掉