如果输入非 int 值,我怎样才能使while循环中断?
因此,例如,如果用户输入字符串,双重或其他基本类型而不是 int ,则循环将退出。
答案 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;
}