为什么我有这个java.util.NoSuchElementException?

为什么我有这个java.util.NoSuchElementException?,java,class,java.util.scanner,nosuchelementexception,Java,Class,Java.util.scanner,Nosuchelementexception,如果我使用Scanner调用一个类成员,并且如果我以前在main方法中使用过Scanner,那么即使所有输入都可用,我也会得到NoSuchElementException错误 import java.util.Scanner; import java.io.*; class Reminder{ static void computeReminder(){ Scanner S=new Scanner(System.in); int a,b;

如果我使用Scanner调用一个类成员,并且如果我以前在main方法中使用过Scanner,那么即使所有输入都可用,我也会得到NoSuchElementException错误

import java.util.Scanner;
import java.io.*;

class Reminder{
    static void computeReminder(){
        Scanner S=new Scanner(System.in);
        int a,b;
        a=S.nextInt();
        b=S.nextInt();
        int reminder = a%b;
        System.out.println(reminder);
    }
}

class TestClass{
    public static void main(String args[]){
        Scanner scan=new Scanner(System.in);
        int T=scan.nextInt(); //Getting no.of TestCases
        for(int i=0; i<T; i++){
            Reminder.computeReminder(); //Calling Class Method to find reminder.
        }
    }
}

重要条件:computerEmider()方法不能有参数,因为这是我学院在线编译器给出的条件。

尝试重用扫描仪,而不是创建多个扫描仪

class Reminder{
    static void computeReminder(Scanner s){
        int a,b;
        a=s.nextInt();
        b=s.nextInt();
        int reminder = a%b;
        System.out.println(reminder);
    }
}

class TestClass{
    public static void main(String args[]){
        Scanner scan=new Scanner(System.in);
        int T=scan.nextInt(); //Getting no.of TestCases
        for(int i=0; i<T; i++){
            Reminder.computeReminder(scan); //Calling Class Method to find reminder.
        }
    }
}
课堂提醒{
静态空隙计算机检测器(扫描仪s){
INTA,b;
a=s.nextInt();
b=s.nextInt();
int提醒=a%b;
系统输出打印项次(提醒);
}
}
类TestClass{
公共静态void main(字符串参数[]){
扫描仪扫描=新扫描仪(System.in);
int T=scan.nextInt();//获取测试用例的数量

对于(int i=0;ini,需要记住这些比较;)您是否尝试过使用
Scanner.hasnetint
来实际确定输入是否可用?您可以提供您尝试使用的输入,以便任何人都可以复制该问题。@Antoniosss保留此链接总是很好;)我需要使用在线编译器作为我的实验课程的一部分,给定的条件是ComputeRemembers()方法不能有参数。我将把它添加到问题描述中。@Gauthamramashbab只使用静态常量
private static final Scanner scan=new Scanner(System.in);
然后它会给我一个“表达式的非法开始”错误。
class Reminder{
    static void computeReminder(Scanner s){
        int a,b;
        a=s.nextInt();
        b=s.nextInt();
        int reminder = a%b;
        System.out.println(reminder);
    }
}

class TestClass{
    public static void main(String args[]){
        Scanner scan=new Scanner(System.in);
        int T=scan.nextInt(); //Getting no.of TestCases
        for(int i=0; i<T; i++){
            Reminder.computeReminder(scan); //Calling Class Method to find reminder.
        }
    }
}