Java 如果继续接收runtimeException
下面的代码在eclipse中运行良好,但在联机编辑器中,我一直收到runtimeException(NoSuchElementFoundException),请帮助我哪里出了问题 {我已经使用了eratosthenes算法的sieve来查找用户要求范围内的素数}Java 如果继续接收runtimeException,java,exception,nosuchelementexception,Java,Exception,Nosuchelementexception,下面的代码在eclipse中运行良好,但在联机编辑器中,我一直收到runtimeException(NoSuchElementFoundException),请帮助我哪里出了问题 {我已经使用了eratosthenes算法的sieve来查找用户要求范围内的素数} public class test { public static void main(String[] args) { Scanner sc = new Scanner(System.in);
public class test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
if(sc.equals(""))
{
sc.close();
}
Integer t = sc.nextInt();
while(t>0)
{
int m = sc.nextInt();
int n = sc.nextInt();
int prime[]= new int[n+1];
for(int i=0;i<=n;i++)
{
prime[i]=1;
}
prime[0]=0;
prime[1]=0;
for(int i=2;i<Math.sqrt(n);i++)
{
if(prime[i]==1)
{
for(int j=2;i*j<n;j++)
{
prime[i*j]=0;
}
}
}
for(int i=m;i<n;i++)
{
if(prime[i]==1)
{
System.out.println(i+" ");
}
}
System.out.println();
t--;
}
}
}
公共类测试{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
如果(sc等于(“”)
{
sc.close();
}
整数t=sc.nextInt();
而(t>0)
{
int m=sc.nextInt();
int n=sc.nextInt();
整数素数[]=新整数[n+1];
对于(int i=0;i我在您提到的站点上尝试了您的代码。我将类可见性更改为默认值以避免某些编译错误。它产生了内部错误,没有进一步的细节,建议在站点上测试代码。我使用了示例测试用例,并在ideone站点上成功通过了测试。
我建议您使用hacker rank,我认为nk更方便。在黑客等级中,您可以解锁测试用例以跟踪代码中的错误和bug,还可以与同事讨论问题。
另一方面,我无法获得您提到的异常“NoTouchElementFoundException”如果您有详细的堆栈跟踪,请将其包括在内,我将相应地更新我的答案。那么您哪里出了问题……也许您应该向您的在线编辑器提供一些输入?prime[1]=0
此行假设n至少为1。如果用户输入的值小于1,则将抛出一个NoSuchElementFoundException
。好的,因此基本上它有具有输入值的测试用例,但是NoSuchElementFoundException
很可能来自嵌套的for循环。您尝试过调试吗?不知道您试图如何处理终止条件i