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

Java Discussion :

Drole d'erreur avec NullPointerException


Sujet :

Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 31
    Par défaut Drole d'erreur avec NullPointerException
    Bonjour à tous,

    Tout d'abord je tiens à préciser que je sais à quoi correspondce type d'erreur.

    C'est juste qu'elle apparait bizarrement sur 2 ligne à peu près similaire.

    voila mon problème:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    for(int ligne = 1; ligne < 4; ligne++) {
                for(int colonne = 0; colonne < 6; colonne++) {
                    if(grille[colonne][ligne] != null && grille[colonne][ligne].getEstRouge() && grille[colonne][ligne+1].getEstRouge() && grille[colonne][ligne+2].getEstRouge()) {
                        if(grille[ligne][colonne-1] == null) {
                            columnToPlay = ligne;
     
                            return columnToPlay;
                        }
                    }
                }
            }
     
            for(int colonne = 0; colonne < 4; colonne++) {
                for(int ligne = 0; ligne < 6; ligne++) {
                    if(grille[colonne][ligne] != null && grille[colonne][ligne].getEstRouge() && grille[colonne+1][ligne].getEstRouge() && grille[colonne+2][ligne].getEstRouge()) {
                        if(grille[colonne+3][ligne] == null && (ligne == 5 || grille[colonne+3][ligne+1] != null)) {
                            columnToPlay = colonne + 3;
     
                            return columnToPlay;
                        }
                        if(colonne > 0 && grille[colonne-1][ligne] == null && (ligne == 5 || grille[colonne-1][ligne+1] != null)) {
                            columnToPlay = colonne - 1;
     
                            return columnToPlay;
                        }
                    }
                }
            }
    Lors de l'exécution, le premier "for" se déroule sans problème. Seulement le deuxième m'affiche ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at sample.IA_Medium.think(IA_Medium.java:94)


    La ligne 94 correspond au plus grand "if" du second "for", soit la ligne 15 ici.

    Voila du coup mon interrogation, pourquoi le premier "for" fonctionne et pas le second alors que les deux plus grand "if" des deux bouclessont quasi les mêmes?

    Si vous avez une idée, merci

  2. #2
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    Salut

    ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(grille[colonne][ligne] != null && grille[colonne][ligne].getEstRouge() && grille[colonne+1][ligne].getEstRouge() && grille[colonne+2][ligne].getEstRouge()) {
    tu testes seulement si n´est pas nul , alors si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grille[colonne+1][ligne]
    est null
    ou si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grille[colonne+2][ligne]
    est null, tu comprends que l´erreur se produira.

    Eric

  3. #3
    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
    Il serait intéressant de simplifier les lignes de test, par exemple en respectant la loi de déméter...

    https://blog.emmanueldeloget.com/ind...loi-de-demeter

Discussions similaires

  1. Drole d'erreurs avec jQuery 1.4.4
    Par griggione dans le forum jQuery
    Réponses: 1
    Dernier message: 08/07/2011, 22h59
  2. Réponses: 3
    Dernier message: 25/04/2010, 16h08
  3. NullPointerException erreur avec JSF
    Par dalidali86 dans le forum JSF
    Réponses: 25
    Dernier message: 25/09/2009, 11h39
  4. Erreur avec les ADO
    Par megane dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2004, 21h37
  5. Erreur avec WM_COMMAND (BN_CLICKED)
    Par cyberlewis dans le forum Windows
    Réponses: 2
    Dernier message: 09/02/2004, 00h25

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