2017-10-10 102 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