2017-10-10 4 views
1

J'utilise ci-dessous le code afin de faire une demande pour l'équipe de gagnants, et il est le travail sur les compilateurs, par exemple Inellij ..Le succès du processus de compilation sur le compilateur échoue sur les compilateurs en ligne pourquoi?

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; 
} 

mais quand je lance ce code sur un compilateur en ligne i get exception

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) 

Qu'est-ce que je fais de mal avec le scanner?

est-ce que je manque quelque chose, s'il vous plaît pointez-moi, merci d'avance.

+0

Essayez de poster une question! Lorsque vous dites compilateur en ligne, essayez d'être spécifique avec le lien hypertexte !! –

+0

@ M. Arjun Je les ai tous dit. – CODE1010101010101

Répondre

2

Ce n'est pas une erreur de compilation, il s'agit d'une erreur d'exécution.

Il (provient probablement) du fait que certains environnements en ligne n'implémentent pas la console, donc vous ne pouvez rien écrire sur l'entrée standard - donc pas d'éléments pour le Scanner. Pour obtenir l'idée: rendez-vous sur https://ideone.com/, sélectionnez Java et cliquez sur stdin et écrivez à l'avance l'entrée que vous donneriez normalement à votre application, en la séparant par des espaces. Par exemple, si vous écrivez simplement 0, votre application affichera REenter cases puisque vous n'acceptez que les cas de 1-100

+0

En effet, il est en charge de la ligne de commande par exemple celui-ci https://www.compilejava.net/ – CODE1010101010101

+0

Il ne le supporte pas - vérifier ma réponse éditée. – Shadov