Java 使用tutorialspoint.com时无任何TouchElementException

Java 使用tutorialspoint.com时无任何TouchElementException,java,java.util.scanner,Java,Java.util.scanner,因此,我正在使用这个编译器站点编写代码: 当我运行代码时,它会告诉我以下错误: Exception in thread "main" java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:862) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt(Scanne

因此,我正在使用这个编译器站点编写代码:

当我运行代码时,它会告诉我以下错误:

Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:862)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at WorkingWithLoops.main(WorkingWithLoops.java:22)
这是我的代码:

import java.util.Scanner;

 public class WorkingWithLoops {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int negative = 0, positive = 0, sum = 0, value;
       
        System.out.print("Enter a value: ");
        value = input.nextInt();
       
        while (value != 0){
            if (value < 0){
                negative++;
            }
            else {
                positive++;
            }
           
            sum += value;
           
            System.out.print("\nEnter a value: ");
            value = input.nextInt();
           
        }
         System.out.print(
            "Positive integers: " + positive +
                "\nNegative integers: " + negative +
                "\nSum: " + sum +
                "\nAverage: " + ((sum * 1.0) /(positive/negative)) 
            );
       
           
    }
}
import java.util.Scanner;
使用循环的公共类工作{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int负=0,正=0,和=0,值;
System.out.print(“输入值:”);
value=input.nextInt();
while(值!=0){
如果(值<0){
负++;
}
否则{
正++;
}
总和+=数值;
System.out.print(“\n输入值:”);
value=input.nextInt();
}
系统输出(
“正整数:”+正整数+
“\n负整数:”+负整数+
“\nSum:”+sum+
“\n平均值:”+((总和*1.0)/(正/负))
);
}
}

它打印输出并输入一个值以接受该值,但不计算或执行任何操作。我不确定我的代码哪部分出错了。我对java也有点新的习惯,我习惯于使用C++。

你需要在STDIN选项卡上提供输入。例如:

1
-1
0

这是您正在使用的TutorialPoint站点特有的问题,因为它不提供交互式控制台。如果在本地运行代码,则不会出现该错误。

我从未使用过此web编译器,但如果我理解正确,则必须在运行代码之前指定输入(在STDIN选项卡中),它将逐行获取输入

如果提供了“0”,则代码的结尾必须是0,因此STDIN中的最后一行必须是零。例如,我使用以下一组数字尝试了代码:

10
1
-3
02
2300
0
这将提供以下输出:

Enter a value: 
Enter a value: 
Enter a value: 
Enter a value: 
Enter a value: 
Enter a value: Positive integers: 4
Negative integers: 1
Sum: 2310
Average: 577.5
其他信息:

我不知道对于java新手来说,使用这样的在线编译器是否值得推荐,因为我不确定它们的可靠性,但我宁愿推荐使用Eclipse或IntelliJ IDEA这样的IDE。在这种情况下,IDE实际上允许您在代码运行时输入数字,而不必预定义代码