IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Erreur Scanner : nextInt()


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2020
    Messages : 11
    Par défaut Erreur Scanner : nextInt()
    Bonjour,

    Je sais que beaucoup de gens ont déjà rencontré ce problème, j'ai regardé leurs solutions mais je ne comprend pas pourquoi ca ne fonctionne toujours pas ...

    la première valeur que je rentre fonctionne mais à la deuxième j'ai une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Scanner scPosition = new Scanner( System.in );
            while((nouvellePosition<positionInf) || (nouvellePosition>positionSup))
            {
                System.out.println("scanner  : "+scPosition);
                System.out.println("nouvelle Position  : ");
                nouvellePosition=scPosition.nextInt();
                scPosition.nextLine();
            }
            System.out.println("Tu as choisis : " + nouvellePosition);
     scPosition.close();
    Je me suis dis que peut être en affichant le contenu du scanner que j'ai nommé scPosition pour m'aider à comprendre le problème :
    Avant la première fois que je rentre un nombre scPosition m'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    scanner  : java.util.Scanner
    [delimiters=\p{[match valid=false][need input=false][sourc][group separator=\x{202f}]
    [decimal separatnegative prefix=\Q-\E][positive suffix=][neNaN\E][infinity string=\Q?\E]
    Avant lorsque je redemande le scanner scPosition m'affiche cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    scanner  : java.util.Scanner
    [delimiters=\p{javaWhitespace}+][position=0][match valid=false][need input=false][source closed=false][skipped=false][group separator=\x{202f}]
    [decimal separator=\x{2c}][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\QNaN\E][infinity string=\Q?\E]
    Et ensuite j'ai l'erreur :

    Nom : Capture.PNG
Affichages : 538
Taille : 13,1 Ko

  2. #2
    Membre chevronné
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 638
    Par défaut
    Bonjour,

    Peux-tu copier l'intégralité de ton code source, s'il te plaît ?

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2020
    Messages : 11
    Par défaut
    Citation Envoyé par transact Voir le message
    Bonjour,

    Peux-tu me faire copier l'intégralité de ton code source, s'il te plaît ?
    L'intégralité... Ca sera compliqué car il est splité en plein de gros morceau de code

    J'appel juste une fonction qui demande à l'utilisateur de saisir un int et j'ai cette erreur...

    Je te renvoie la fonction en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int positionInf = getPositionInf(numeroJoueur);//Me renvoie 1 
            int positionSup = getPositionSup(numeroJoueur);//Me renvoie 3 
            int nouvellePosition=-1;
     
            Scanner scPosition = new Scanner( System.in );
            while((nouvellePosition<positionInf) || (nouvellePosition>positionSup))
            {
                System.out.println("scanner  : "+scPosition);//Affichage de scPosition
                System.out.println("nouvelle Position  : ");
                nouvellePosition=scPosition.nextInt();//La ligne où mon erreur apparait...
                scPosition.nextLine();//Sur les forums on dit qu'il faut ajouter cette ligne... Mais ca ne marche toujours pas
            }
            System.out.println("Tu as choisis : " + nouvellePosition);
            scPosition.close();

  4. #4
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Bonjour,

    Dans l'API de Scanner il est indiqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @throws NoSuchElementException if input is exhausted
    Autrement dit, l'entrée est vide. Il est possible de tester avant lecture avec sc.hasNext() ou sc.hasNextInt() par exemple.

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2020
    Messages : 11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    int positionInf = getPositionInf(numeroJoueur);
            int positionSup = getPositionSup(numeroJoueur);
            int nouvellePosition=-1;
     
            Scanner scPosition = new Scanner( System.in );
            while((nouvellePosition<positionInf) || (nouvellePosition>positionSup))
            {
                System.out.print("nouvelle Position  : ");
                if(scPosition.hasNextInt())
                {
                    nouvellePosition=scPosition.nextInt();
                }
     
            }
            System.out.println("Tu as choisis : " + nouvellePosition);
    Je viens d'implémenter ce code...
    Ca fonctionne la première fois mais la deuxième fois, j'ai une boucle infinie qui m'affiche "nouvelle Position :"
    Pourquoi je n'ai pas une méthode bloquante quelques part pour que je puisse rentrer un nouveau nombre...?

  6. #6
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Citation Envoyé par nthCode Voir le message
    Ca fonctionne la première fois mais la deuxième fois, j'ai une boucle infinie qui m'affiche "nouvelle Position :"
    Pourquoi je n'ai pas une méthode bloquante quelques part pour que je puisse rentrer un nouveau nombre...?
    La méthode bloquante est le nextInt(). Mais le hasNextInt() empêche son exécution.

Discussions similaires

  1. scanner.nextLine après scanner.nextInt
    Par stracoma dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 01/09/2015, 22h51
  2. Erreur "scanner cannot be resolved to a type"
    Par Garigliano dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 15/06/2013, 00h20
  3. [WD15] erreur sur un code pour scanner
    Par fr832 dans le forum WinDev
    Réponses: 4
    Dernier message: 07/09/2011, 21h15
  4. Erreur avec nextInt()
    Par Steve.j dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 09/01/2010, 00h33
  5. Erreur sous eclipse avec Scanner
    Par bugland dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 11/01/2007, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo