扫描器类没有此类元素异常

时间:2018-12-09 11:13:15

标签: 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");
        }
    }
}

3 个答案:

答案 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有问题?