2017-10-10 136 views
1

为了使申请获奖者队我用下面的代码,它是在编译器如Inellij工作..为什么在线编译器编译过程成功编译失败?

Scanner scanner = new Scanner(System.in); 
    System.out.println("how many cases"); 
    int cases = scanner.nextInt(); 
    if (cases < 1 || cases > 100){ 
     System.out.println("REenter cases"); 
     cases =scanner.nextInt(); 
     return; 
    } 
    String [] winnerTeams = new String[cases]; 
    for (int i = 0; i < cases; i++) { 
     winnerTeams[i] = getWinnersTeam(scanner); 
    } 

    for (int i = 0; i < cases; i++) { 
     System.out.println(winnerTeams[i] + "\n"); 
    } 

} 

public static String getWinnersTeam(Scanner sc) { 
    int bestScore = 0; 

    String team = "Nothing entered"; 
    System.out.println("how many teams"); 
    int count = sc.nextInt(); 
    if (count < 2 || count > 100){ 
     System.out.println("group should be 2++"); 
     System.exit(0); 
    } 
    sc.nextLine(); 
    while (count-- > 0) { 
     System.out.println("Entered team,score"); 

     String line = sc.nextLine(); 
     String arr [] = line.split(" "); 
     // check size - TBD 
     if (Integer.parseInt(arr[1]) > bestScore) { 
      bestScore = Integer.parseInt(arr[1]); 
      team = arr[0]; 
     } 
    } 

    System.out.println("nest team is " + team + " with a score of " + bestScore); 
    return team; 
} 

,但是当我在任何在线编译运行这段代码,我得到异常

Exception in thread "main" java.util.NoSuchElementException 
    at java.util.Scanner.throwFor(Scanner.java:862) 
    at java.util.Scanner.next(Scanner.java:1485) 
    at java.util.Scanner.nextInt(Scanner.java:2117) 
    at java.util.Scanner.nextInt(Scanner.java:2076) 
    at Main.main(Main.java:14) 

我的扫描仪有什么问题吗?

我错过了什么,请提前告诉我,谢谢。

+0

的案例请尝试发布完整的问题!当说在线编译器试图具体的超链接! –

+0

@阿俊先生我说过他们全部。 – CODE1010101010101

回答

2

这不是编译器错误,这是运行时错误。

它(可能)来自一些在线环境没有实现控制台的事实,因此你不能写任何东西到标准输入 - 所以没有任何元素为Scanner

为了得到想法:访问https://ideone.com/,选择Java并点击stdin,并提前输入您通常会给您的应用程序的输入,并用空格分隔。例如,如果您只是在那里写入0,则您的应用将打印REenter cases,因为您只接受来自1-100

+0

事实上,它支持命令行,例如这一个https://www.compilejava.net/ – CODE1010101010101

+0

它不支持它 - 检查我编辑的答案。 – Shadov