Java probleme sc.nextInt();

Fermé
Lil_Monis - 9 mai 2020 à 13:50
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 9 mai 2020 à 14:25
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
9 mai 2020 à 14:25
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