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