Java probleme sc.nextInt();

Lil_Monis -  
KX Messages postés 19031 Statut Modérateur -
Bonjour, j'ai un message d'erreur sur mon programme alors que sur les autres fois où j'utilise cette fonctionnalité ça marche nickel. voici mon programme:
public static int Tour() {

Scanner sc = new Scanner(System.in);
System.out.println("Combien de baton voulez vous enlever ?");
int batonEnleve = sc.nextInt();
while (batonEnleve > 3 || batonEnleve < 1){
System.out.println("Il faut un nombre entre 1 et 3");
batonEnleve = sc.nextInt();
}
sc.close();
return batonEnleve;
}

et voici le message d'erreur:

Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at Jeu_baton/fr.sim.baton.Main.Tour(Main.java:28)
at Jeu_baton/fr.sim.baton.Main.Ordi(Main.java:99)
at Jeu_baton/fr.sim.baton.Main.Type(Main.java:186)
at Jeu_baton/fr.sim.baton.Main.main(Main.java:18)

Si quelqu'un sait quel est le problème je suis preneur merci.

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    Il ne faut pas fermer
    System.in
    sinon il ne pourra pas être réouvert et toute lecture sur un flux fermé ne pourra que échouer...

    Donc enlève l'instruction
    sc.close()
    et ça devrait bien se passer.
    1