java - 调用函数给出 "NoSuchElementException"

标签 java function

我正在编写一个简单的 Java 程序来解释循环。我希望每个演示都在一个单独的函数中。现在,每个函数都可以正常工作,但只有在另一个函数未被调用时才能正常工作。如果我同时调用两者,我会在运行时收到以下错误:

Please input a positive integer as the end value: 5
The summation is: 9
How many rows do you want your triangle to be?: Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at loops.exercise2(loops.java:48)
at loops.main(loops.java:11)

代码:

import java.util.Scanner;

public class loops
{

public static void main( String args[] )
{
    exercise1();
    System.out.println();
    exercise2();
}

public static void exercise1()
{

    int limit;
    int i;
    int sum;

    Scanner keyboard = new Scanner(System.in);


    System.out.print ("Please input a positive integer as the end value: ");

    limit = keyboard.nextInt();

    i=1;
    sum = 0;

    while (i <= limit)
    {
        sum = sum + i;
        i = i + 2;          
    }

    System.out.print("The summation is: " + sum);

    keyboard.close();
}

public static void exercise2()
{
    int numRows, i, j;
    Scanner keyboard = new Scanner(System.in);

    System.out.print("How many rows do you want your triangle to be?: ");
    numRows = keyboard.nextInt();

    for(i=0; i<numRows; i++)
    {
        for(j=0; j<=i; j++)
        {
            System.out.print("*");              
        }
        System.out.println();
    }

    keyboard.close();
}

最佳答案

发生这种情况是因为当您关闭 Scanner 时,它也会关闭输入流,在本例中为 System.in。当您尝试在 execise2 方法中实例化 Scanner 时,输入流已关闭。

查看此 SO 帖子...

https://stackoverflow.com/a/13042296/1246574

关于java - 调用函数给出 "NoSuchElementException",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17929787/

相关文章:

java - Java 开源操作系统

javascript - 如何使用 Bokeh 从 Python 调用 JavaScript 函数?

vba - 是否可以为功能分配别名?

C++ 类、构造函数和函数

Javascript onkeydown 函数运行然后显示消失

MySQL 查询显示下个月内的所有小时

java - 为什么我的 BitSet 大小为 0?

java - 不断检查 boolean 值

java - 类似于 Dynatrace 的工具

java - 如何设置弹出背景透明Java Fx