scanner类没有此类元素异常

  • 本文关键字:元素 异常 scanner java
  • 更新时间 :
  • 英文 :


我是一个编程新手,我正在尝试制作一个程序,"告诉"用户烤牛肉的温度和时间。我决定使用扫描仪,现在我得到了没有这样的元素异常错误。这就是我的代码的样子,我无法判断我做错了什么。

import java.util.Scanner;
public class Roasts {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Which Roast are you cooking?  1. Chuck 2. Tenderloin 3. Rib 4. Sirloin 5. Tri-tip 6. Shoulder ");
int numb=0;
numb=input.nextInt();
switch (numb) {
case 1:
System.out.println("300 degrees for 3 hours");
break;
case 2:
System.out.println("350 degrees for 1 hour, then turn off heat and leave roast in oven for 1 additional hour");
break;
case 3:
System.out.println("375 degrees for 1 hour, then turn off heat and leave roast in oven for an additional 2 hours");
break;
case 4:
System.out.println("350 degrees for 45 mins to one hour");
break;
case 5:
System.out.println("375 degrees for 45 mins");
break;
case 6:
System.out.println("325 degrees for 4 hours");
break;
default:
System.out.println("invalid number please choose 1-6");
}
}
}

当抛出NoSuchElementException时(从这里(:

由各种访问器方法抛出,以指示所请求的元素不存在。

Scanner.nextInt()抛出NoSuchElementException时(从这里开始(:

如果输入已用尽

我实际上没有看到你的程序是以不正确的方式编制的,但可能是你提供的输入导致了这个问题。

您可能应该考虑在调用Scanner#nextInt()之前检查Scanner#hasNextInt()

我还建议您首先阅读正在使用的类的javadocs,以更好地理解行为,并在初学者时对所遇到的错误/异常有更多的了解。HTH。

我试着运行您的代码,在我看来它根本没有问题。也许您的IDE有问题?

可能的原因(尽管在这种特殊情况下看起来很奇怪(是在扫描仪对象中留下了换行符。试着返工你的生产线:

numb=input.nextInt();

至:

numb = Integer.parseInt(input.nextLine());

最新更新