2014-02-25 40 views
1
import java.util.Scanner; 
public class Count { 
     public static void main(String []args){ 
     Scanner s=new Scanner(System.in); 
     int i=s.nextInt(); 
     int j=i+1; 
     System.out.println(j); 
    } 

} 

这是一个Java的基本代码,当我跑我自己的电脑上它工作得很好,同样的代码我编译和执行Online compiler,它提供了一些错误,为什么?在线编译器VS本地编译器

Exception in thread "main" java.util.NoSuchElementException 
    at java.util.Scanner.throwFor(Scanner.java:907) 
    at java.util.Scanner.next(Scanner.java:1530) 
    at java.util.Scanner.nextInt(Scanner.java:2160) 
    at java.util.Scanner.nextInt(Scanner.java:2119) 
    at Count.main(Count.java:28) 

回答

1

有一个field为STDIN提供输入参数。

在您的程序中,您可能会要求用户输入数字或字符串形式的 的一些值。因为在网络上我们不能提供交互式 选项来提供输入,所以我们提供了这个选项来提供一行中的所有 输入,您的程序将使用您编程语言中提供的不同 函数来读取这些输入。

enter image description here

+0

你知道为什么,如果你使用0作为输入值,它抛出同样的异常,同时使用00它的工作原理?只是好奇心 – eltabo

+0

@eltabo嗯,不,我不知道:/这可能是一个错误。你可以使用http://ideone.com/并以相同的方式提供参数,它在这里工作。 –

+0

我认为这是一个错误。这在我看来似乎有点奇怪的行为。 – eltabo

1

因为您没有为System.in提供任何输入。如果在该在线编译器的“STDIN输入”框中输入了某个内容,请说2,该程序按预期工作。