CodeChef(Java)上的运行时错误(NZEC)

时间:2017-08-19 04:41:33

标签: java

问题是https://www.codechef.com/problems/CIELAB 我一直在CodeChef上得到运行时错误(NZEC)。 它在DrJava上运行良好。

import java.util.*;
class CodeChef1{
    public static void main(String[]args){
        Scanner s=new Scanner(System.in);
        System.out.println("Please enter the range");
        int k1=s.nextInt();
        int k2=s.nextInt();
        int a,b;
        if(k1>k2){
            a=k1;
            b=k2;
        }
        else{
            a=k2;
            b=k1;
        }
        while(true){
            System.out.println("Please enter a number within the range");
            int n=s.nextInt();
            if(b<n & n<a){
                System.out.println(n);
            }
            else{
                System.out.println("Not within range");
                break;
            }
        }
    }
}

代码中有什么问题?

1 个答案:

答案 0 :(得分:0)

致电时

s.nextInt()

在你的代码中,你假设每次都会有一个int。如果没有输入或输入不是int会怎么样?

因此,该陈述应先进行检查:

if(s.hasNextInt()){ // this is the check
  int ... = s.nextInt();
}
else{
// decide what to do. A graceful exit or assigning some default value to your int
}