如果输入非int值,如何退出While循环?

时间:2014-03-22 23:40:48

标签: java while-loop

如果输入非 int 值,我怎样才能使while循环中断?

因此,例如,如果用户输入字符串,双重或其他基本类型而不是 int ,则循环将退出。

3 个答案:

答案 0 :(得分:2)

使用Scanner课程,并致电hasNextInt。如果方法返回false,则结束循环。

答案 1 :(得分:0)

首先,用户从不输入字符串,双重或其他;他输入了一些Scanner读取和解释的字符,具体取决于你要求它做什么。

两种解决方案:

while (scanner.hasNextInt()) {
    ...
}

或:

while (true) {
    try {
        scanner.nextInt();
    } catch (InputMismatchException ignored) {
        break;
    }
}

嗯,Scanner更多"微妙"比那更重要,但这就是它的核心。

答案 2 :(得分:0)

这取决于您的输入是什么以及如何获得它。

while(true)
{
  String myWord;
 //whatever way you are trying to get the input assume its in String myWord
  if(isNotInt(myWord))
     break;
}

这是一般String的辅助方法。您将其转换为int,如果string不是int,您将获得java.lang.NumberFormatException例外,您可以找到答案。

public static boolean isNotInt(String input) {
    boolean retVal = false
    try { 
        Integer.parseInt(input); 
    } catch(NumberFormatException e) { 
        retVal = true; 
    }
    return retVal;
}