for循环的Java NoSuchElementException

时间:2016-06-08 10:56:43

标签: java

如果我单独调用一个方法,它可以正常工作,但是如果调用了两个方法,则在第一个方法完成后,java会抛出NoSuchElementException。任何人都可以请求它的原因和解决方案。这是一个初学者练习,通过使用扫描仪循环创建模式。如果我不使用Scanner类,这两种方法也可以正常工作。谢谢。 真诚的新手。

private static void pattern1() {
    int num = 1;
    int limit;
    Scanner input = new Scanner(System.in);
    System.out.print("Enter number ");
    limit = input.nextInt();
    for (int i = 0; i < limit; i++) {
        ++num;
        for (int j = 1; j < num; j++) {
            System.out.print(j + " ");
        }
        System.out.println();
    }
    input.close();
}

private static void pattern2() {
    Scanner input = new Scanner(System.in);
    int limit;
    System.out.print("Enter number ");
    limit = input.nextInt();
    int num = limit + 1;
    for (int i = 0; i < limit; i++) {
        for (int j = 1; j < num; j++) {
            System.out.print(j + " ");
        }
        num--;
        System.out.println();
    }
    input.close();
}

1 个答案:

答案 0 :(得分:0)

您可以基于相同的输入流对象(System.in)创建2个Scanner对象。在第一种方法中,您关闭输入流,因此第二个Scanner对象无法从同一输入对象读取。