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

求助:我想从控制台输入一个整数,如果不是整数重新输入
具体代码如下,结果陷入了死循环!请问该如何修改?
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("必须输入整数!请重新输入:");
}
}
}
}

------解决方案--------------------
Java code
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(); // 吃掉回车
            }
        }
        
    }
}