当前位置: 首页 > 知识库问答 >
问题:

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

濮阳繁
2023-03-14

如果输入了非int值,如何创建一个会中断的while循环?

例如,如果用户输入字符串、double或int以外的其他基本类型,循环将退出。

共有3个答案

席烨
2023-03-14

这取决于你的输入是什么以及你是如何得到的。。

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;
}

嵇财
2023-03-14

首先,用户从不输入字符串,双精度或其他;他输入一些字符,Scanner根据您的要求进行读取和解释。

两种解决方案:

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

或者:

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

嗯,Scanner比这更“微妙”,但这才是关键。

刘永望
2023-03-14

使用扫描仪类,并调用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更新的值的输入但如果它不保持最后一个找到但我需要有明确的值,有人能告诉我怎么了吗: