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.
A voir également:

1 réponse

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