Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de saisie avec le Scanner

    14 février 2021 à 13:54:12

    Bonjour à tous !

    Je suis en train de coder un mini-jeu en mode console. J'ai une classe Personnage, dans laquelle je souhaitais définir une méthode "ajoutInventaire", qui ajoute un élément o dans l'inventaire, qui est une Liste. Comme je souhaite limiter la taille de l'inventaire à 10 objets, lorsque la limite est atteinte je demande à l'utilisateur  s'il souhaite remplacer un objet de l'inventaire par celui récupéré. Voici la méthode ajoutInventaire : 

    public void ajoutInventaire(Obj o) {
    	if(inventaire.size() < 10) {
    		inventaire.add(o);
    		System.out.println("Objet "+o.getNom()+" ajouté à l'inventaire");
    	} else {
    		System.out.println("Inventaire plein, remplacer un item possédé par "+o.getNom()+" ?");
    		
    		System.out.println();
    		System.out.print("Repondre oui ou non : ");
    		Scanner choixLacherObjet = new Scanner(System.in);
    		String choixJoueur = choixLacherObjet.nextLine();
    		if(choixJoueur == "oui") {
    			for(Obj ob : inventaire) {
    				System.out.println(ob.getNom());
    			}
    			Scanner choixObjet = new Scanner(System.in);
    			System.out.println("Remplacer quel objet par "+o.getNom());
    			choixJoueur = choixObjet.nextLine();
    			Obj objet = new Obj();
    			for(int i = 0 ; i < 10 ; i++) {
    				if(inventaire.get(i).getNom() == choixJoueur) {
    					objet = inventaire.get(i);
    					break;
    				}
    			}
    			
    			inventaire.remove(objet);
    			inventaire.add(o);
    			
    			choixObjet.close();
    		} else {
    			System.out.println("Vous laissez l'objet");
    		}
    			
    		choixLacherObjet.close();		
    	}			
    }


    Lorsque j'exécute le test de cette méthode, il m'indique cette erreur après le "Repondez oui ou non :" ->

    Exception in thread "main" java.util.NoSuchElementException: No line found

    at java.base/java.util.Scanner.nextLine(Scanner.java:1651)

    at testjeu/testjeu.Personnage.ajoutInventaire(Personnage.java:47)

    at testjeu/testjeu.Combat.main(Combat.java:145)

    Est-ce que l'un d'entre vous aurait une idée d'où pourrait venir l'erreur ? J'ai beau chercher je l'arrive pas à voir où elle serait... Ce qui est sûr en tout cas, c'est qu'elle est liée au Scanner :p

    Je précise d'ailleurs que mon IDE (Eclipse) ne m'indique aucune erreur dans le programme et le compile normalement...

    Merci d'avance pour votre aide !!

    -
    Edité par EthanWright 14 février 2021 à 13:55:08

    • Partager sur Facebook
    • Partager sur Twitter

    Problème de saisie avec le Scanner

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown