如果输入了非int值,如何创建一个会中断的while循环?
例如,如果用户输入字符串、double或int以外的其他基本类型,循环将退出。
这取决于你的输入是什么以及你是如何得到的。。
while(true)
{
String myWord;
//whatever way you are trying to get the input assume its in String myWord
if(isNotInt(myWord))
break;
}
下面是一个常规字符串的助手方法。将其转换为
int
,如果字符串
不是int
,则会得到java。lang.NumberFormatException
异常,您可以找到。
public static boolean isNotInt(String input) {
boolean retVal = false
try {
Integer.parseInt(input);
} catch(NumberFormatException e) {
retVal = true;
}
return retVal;
}
首先,用户从不输入字符串,双精度或其他;他输入一些字符,Scanner
根据您的要求进行读取和解释。
两种解决方案:
while (scanner.hasNextInt()) {
...
}
或者:
while (true) {
try {
scanner.nextInt();
} catch (InputMismatchException ignored) {
break;
}
}
嗯,Scanner
比这更“微妙”,但这才是关键。
使用扫描仪
类,并调用hasNextInt
。如果该方法返回false
,则结束循环。
在生命数==0之后,while语句为false,必须退出循环。但在这种情况下,即使循环为false,也会执行循环。
我希望scanf读取一些数据并将其存储到多个变量中。但是,如果第一个变量,即数量为0,则scanf需要退出请求用户输入,因为我的后续while循环取决于该值,即数量。如果该值不为零,则继续循环并执行进一步的操作,否则不执行。 样品输入1: 21,1,1.5,1,马铃薯 样本输入2:0 此处,在示例输入2之后,如果输入0并按enter键,scanf仍在等待用户的输入。在输入0和enter键后,如何退
我对java非常陌生,需要帮助。基本上,我有一个程序,要求用户输入一个数字。当输入该数字时,它会将该数字之前的所有奇数相加。我正在尝试(但失败)做的是,做另一个循环,当提示用户请求一个数字来求奇数之和时,我想让它只在输入奇数时继续,否则它将不断重复询问用户,直到他们输入奇数为止。我知道使用循环可以解决这个问题,但我不知道如何让它工作。 这是我的密码: 提前谢谢!
如果您能帮助我完成Java类的任务,我将不胜感激。问题提示如下: 编写一个程序来读取非负整数列表并显示最大整数、最小整数和所有整数的平均值。用户通过输入一个不用于查找最大值、最小值和平均值的负哨兵值来指示输入的结束。平均值应该是双精度类型的值,以便用小数部分计算。 我在代码中遇到的问题是,运行时,循环不会完成,除非输入的第一个值为负值,在这种情况下它返回: 输入的最大数字是:0输入的最小数字是:0
我试图创建一个函数,使用不同的字段作为权重将数据分成十分之一,这样我就可以有相等的暴露桶。在这样做的时候,我创建了一个简单的例子,我试图进入3个桶。我确实在第一部分遇到了困难,那就是让这个while循环工作起来: 我的成绩是0,0 谢谢!
我试图清除一个输入的值取决于它是否找到一个id如果它找到一个现有的id js更新的值的输入但如果它不保持最后一个找到但我需要有明确的值,有人能告诉我怎么了吗: