生命的宇宙和一切

在这里输入图像描述

我是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;
     }
链接地址: http://www.djcxy.com/p/96119.html

上一篇: Life Universe and Everything

下一篇: Exception in thread "main" java.util.NoSuchElementException Error