有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java程序持续运行,但从未实际执行任何操作

我运行程序,但没有一行执行。当我告诉它停止时,它会打印一条红色的错误消息

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)

这是我的代码,对于我有限的经验来说,没有什么是不寻常的,我的IDE在编写时不会报告任何错误

import java.util.Scanner;

public class 312easf2 
{

    public static void main(String[] args) 
    {
        Scanner keyboard = new Scanner(System.in);
        int grade = 0;  // initial value to satify loop condition
        double averageGrade = 0.0;
        int max = keyboard.nextInt();
        int min = max;
        int next = keyboard.nextInt();

        System.out.println("Enter a nonnegative integer (negative to stop): ");

        while(next >= 0);
        {
            if(next > max)
                max = next;
            else if(next < min);
                min = next;
            next = keyboard.nextInt();
        }
    }

}

共 (1) 个答案

  1. # 1 楼答案

    编辑:我在我的回答中指出了一个语法问题,在程序正常运行之前,你仍然需要解决这个问题,但是对于现在来说,真正的问题在于你的前几行:

            Scanner keyboard = new Scanner(System.in);
            int grade = 0;  // initial value to satify loop condition
            double averageGrade = 0.0;
            int max = keyboard.nextInt();
            int min = max;
            int next = keyboard.nextInt();
    

    你的程序正在执行一些东西,但它什么也没说,只有当你停止时才打印错误,这一切都是因为你的程序实现中的一个错误。然而,这不是语法错误;只是你忘了一些重要的事情

    Wcrousse in his answer explains what's happening.


    有一个语法问题代码中有多个类似的语法问题,实际上是合法的语法,这就是IDE和编译器没有抱怨的原因。然而,它们往往是一种非常常见的错误,会导致意外行为

    请特别注意分号,并再次尝试查看代码。或者,按照Gabe的建议使用调试器,这会让你更好地了解发生了什么