Problème fonction java

nath09 -  
KX Messages postés 19031 Statut Modérateur -
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 19031 Statut Modérateur 3 020
 
Bonjour,

Remplaces
import algorea.Scanner;
par
import java.util.Scanner;
et ce sera bon.
2
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 759
 
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