我是一名新手,我正在尝试编写一个程序来告诉用户温度和煮牛肉烤的时间。我决定使用扫描仪,现在遇到了没有此类元素异常的错误。这就是我的代码的样子,我无法分辨自己在做什么。
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");
}
}
}
答案 0 :(得分:1)
从here抛出NoSuchElementException
时:
各种访问器方法抛出的异常表明所请求的元素不存在。
当Scanner.nextInt()
抛出NoSuchElementException
(来自here)时:
如果输入已用尽
我实际上看不到您的程序设计不当,但是您提供的输入可能会导致此问题。
可能您应该在调用Scanner#hasNextInt()
之前考虑检查Scanner#nextInt()
。
我还建议您先阅读要使用的类的javadocs,以更好地了解行为,并更好地理解初学者时遇到的错误/异常。 HTH。
答案 1 :(得分:0)
这样做的可能原因(尽管在特定情况下看起来很奇怪)是在扫描仪对象中保留了换行符。尝试重新制作您的线路:
numb=input.nextInt();
收件人:
numb = Integer.parseInt(input.nextLine());
答案 2 :(得分:0)
我尝试运行您的代码,在我看来,这根本没有问题。也许您的IDE有问题?