生命的宇宙和一切

我是CodeChef的新手,在CodeChef(在线编程平台)编辑器中出现以下错误,并且无法提交我的代码。
我想问一下
1)是我对待问题的方法吗?
2)当这个错误来了吗?
3)为什么我得到编译错误?
MyApproach:
import java.util.Scanner;
class Prog1 {
    public static void main(String[] args) throws java.lang.Exception {
        int a = 0;
        Scanner sc = new Scanner(System. in );
        int t = 1;
        while (t != 0) {
            a = sc.nextInt();
            if (a != 42) System.out.println(a);
            else t = 0;
        }
    }
}
在我的eclipse编辑器中显示的输出是:
  34 
  34 
  53 
  53 
  42 
但是我在Codechef编辑器中遇到以下异常:
  线程“main”中的异常java.util.Scanner.throwFor(Scanner.java:862)处的java.util.NoSuchElementException 
  在java.util.Scanner.next(Scanner.java:1485) 
  在java.util.Scanner.nextInt(Scanner.java:2117) 
  在java.util.Scanner.nextInt(Scanner.java:2076) 
  在Prog1.main(Main.java:15) 
Thankx提前
  我猜测问题是您的Scanner尝试在没有文本时读取文本。  尝试扫描仪的hasNextInt()方法: 
int a = 0;
Scanner sc = new Scanner(System.in);
boolean t = false;
while (!t) {
    if (sc.hasNextInt()) {
        a = sc.nextInt();
        if (a != 42)
            System.out.println(a);
        else
            t = true;
    }
}
  此外,你应该使用boolean而不是int (对于t )。 
你缺少if语句的括号。
    while(t!=0)
   {
     a=sc.nextInt();
     if (a != 42) {
         System.out.println(a);
     }
     else {
         t=0;
     }
   }
当达到时不会打印42,但是,当a等于42时,您需要再次添加系统打印呼叫:
if (a != 42) {
         System.out.println(a);
     }
     else {
         System.out.println(a);
         t=0;
     }
上一篇: Life Universe and Everything
下一篇: Exception in thread "main" java.util.NoSuchElementException Error
