Problème fonction java

Fermé
nath09 - 17 août 2019 à 12:54
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 18 août 2019 à 19:30
Bonjour,

Je dois faire un exercice dont l'objectif est d'utiliser une fonction pour éviter de recopier deux fois les instructions qui permettent d'attendre le code 4242. Mais avec ce code, les erreurs suivantes s'affichent :
Exception in thread "main" java.util.NoSuchElementException
at algorea.Scanner.next(Scanner.java:56)
at algorea.Scanner.nextInt(Scanner.java:116)
at Main.demanderCode(main.java:13)
at Main.demanderCode(main.java:20)

Dans l'exercice, algorea.Scanner équivaut à algorea java.util.Scanner. Avez-vous une solution ? Merci :)

import algorea.Scanner;

class Main {

static Scanner entrée = new Scanner(System.in);

static void demanderCode() {
System.out.println("Entrez le code :");
int code = entrée.nextInt();

if (code == 4242) {
System.out.println("Encore une fois.");
int code2 = entrée.nextInt();
if (code2 == 4242) {
System.out.println("Bravo.");
} else {
demanderCode();
}
} else {
demanderCode();
}
}

public static void main(String[] args) {
demanderCode();


}

}



Configuration: Windows / Chrome 76.0.3809.100
A voir également:

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
18 août 2019 à 19:30
Bonjour,

Remplaces
import algorea.Scanner;
par
import java.util.Scanner;
et ce sera bon.
2
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
17 août 2019 à 14:46
Bonjour,

Déjà... pour poster ton code, merci à l'avenir d'utiliser les BALISES DE CODE.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite, évites d'utiliser des caractères accentués dans le nom de tes variables (ou de fonctions )

Et enfin, tu fais un println (donc tu as un saut de ligne)
Je pense que tu dois faire un premier nextLine avant de récupérer la valeur du code.

un truc du genre :
System.out.println("Entrez le code :");
entree.nextLine();
int code = entree.nextInt(); 


0