anipassion.com

Projet2 class plateau( premier ligne occupe )2

Voir le sujet précédent Voir le sujet suivant Aller en bas

Projet2 class plateau( premier ligne occupe )2

Message  didi le Dim 05 Avr 2009, 22:10

voila encore même le problème

Code:
 public int premiereLigneOccupe(NordSud point)  {
                boolean nonTrouve = true;
                int ligne ;
                if (point == NordSud.SUD)      {
                        System.out.println("dans le sud ");
                        while (nonTrouve == true)      {
                                for (int i = 0;i < plateaux.length;i++) {
                                        for (int j = 0; j < plateaux.length;j++)        {
                                                if (plateaux[i][j] != null)    {
                                                        ligne =  i;

                                                        nonTrouve = false;      }


                                        }
                                }
                        }

                }      else if (point == NordSud.NORD) {
                        while (nonTrouve == true)      {
                                for (int i = plateaux.length - 1;i >= 0;i--)    {
                                        for (int j = 0; j < plateaux.length;j++)        {
                                                if (plateaux[i][j] != null)    {
                                                        ligne = 0 + i;
                                                        nonTrouve = false;      }
                                                }
                                        }
                                }
                        }      else {
                                throw new IllegalArgumentException(" Votre valeur n'est pas valide ");  }

                        return ligne;

                }


mais il me donne l'érreur message comme
Code:

Plateau.java:156: variable ligne might not have been initialized
                        return ligne;
                              ^
1 error

quelqu'un peut m'aider ....................?

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: Projet2 class plateau( premier ligne occupe )2

Message  Wark le Dim 05 Avr 2009, 22:50

Code:
int ligne = -1;

Ca résoudra ton souci mais ça ne fera pas pour autant forcément ce que tu veux, je n'ai pas lu ton projet... Ton erreur est "ligne peut ne pas avoir été initialisée".

Wark

Nombre de messages : 682
Age : 29
Prénom : Cédric
Statut : Diplômé 2010
Localisation : Braine l'alleud
Date d'inscription : 04/02/2008

Revenir en haut Aller en bas

Re: Projet2 class plateau( premier ligne occupe )2

Message  Dj x-fuse le Dim 05 Avr 2009, 23:43

Le soucis, c'est qu'il y a trois possibilités :

Soit tu retourne la ligne pour Nord,
soit tu retourne la ligne pour Sud,
soit tu lance une exception.

Ton problème se pose ici, en écrivant "int ligne;" (qui est correct), tu ne lui donne aucune valeur. Si ce n'est pas Nord et que ce n'est pas non plus Sud, alors c'est une exception. Le problème, si tu lance cette exception, il n'aura pas initialiser "ligne" avec une valeur.

Du coup, il ne saura pas quoi retourner dans ce troisième cas.

Le mieux étant de supprimer ce "throw new ..." car si tu reçoit un Nordsud en paramètre, c'est forcément un Nord ou un Sud, rien d'autre. L'erreur si on fourni autre chose que NORD ou SUD sera traitée ailleur que dans cette méthode.

Dj x-fuse

Nombre de messages : 658
Age : 27
Prénom : Jonathan
Statut : 4ième sécu
Localisation : IRL
Date d'inscription : 18/10/2008

Revenir en haut Aller en bas

Re: Projet2 class plateau( premier ligne occupe )2

Message  Wark le Lun 06 Avr 2009, 10:10

Dj x-fuse a écrit:Du coup, il ne saura pas quoi retourner dans ce troisième cas.b

Le mieux étant de supprimer ce "throw new ..." car si tu reçoit un Nordsud en paramètre, c'est forcément un Nord ou un Sud, rien d'autre. L'erreur si on fourni autre chose que NORD ou SUD sera traitée ailleur que dans cette méthode.

Un lancement d'Exception agit bel et bien comme un return... Si une exception est lancée, jamais l'instruction

Code:
return ligne
ne sera exécutée. Wink

Wark

Nombre de messages : 682
Age : 29
Prénom : Cédric
Statut : Diplômé 2010
Localisation : Braine l'alleud
Date d'inscription : 04/02/2008

Revenir en haut Aller en bas

Re: Projet2 class plateau( premier ligne occupe )2

Message  Dj x-fuse le Lun 06 Avr 2009, 13:11

Wark a écrit:
Dj x-fuse a écrit:Du coup, il ne saura pas quoi retourner dans ce troisième cas.b

Le mieux étant de supprimer ce "throw new ..." car si tu reçoit un Nordsud en paramètre, c'est forcément un Nord ou un Sud, rien d'autre. L'erreur si on fourni autre chose que NORD ou SUD sera traitée ailleur que dans cette méthode.

Un lancement d'Exception agit bel et bien comme un return... Si une exception est lancée, jamais l'instruction

Code:
return ligne
ne sera exécutée. Wink

Au temps pour moi ! Je n'avais jamais posé cette question au cours théorique... Il faut dire que notre chère PtB nous captivait tellement... Laughing

Dj x-fuse

Nombre de messages : 658
Age : 27
Prénom : Jonathan
Statut : 4ième sécu
Localisation : IRL
Date d'inscription : 18/10/2008

Revenir en haut Aller en bas

Re: Projet2 class plateau( premier ligne occupe )2

Message  nvs le Lun 06 Avr 2009, 14:06

Dj x-fuse a écrit:Au temps pour moi ! Je n'avais jamais posé cette question au cours théorique... Il faut dire que notre chère PtB nous captivait tellement... Laughing
le soleil du brésil lui a fait le plus grand bien Laughing

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: Projet2 class plateau( premier ligne occupe )2

Message  pbt le Lun 06 Avr 2009, 20:42

Wark a écrit:Un lancement d'Exception agit bel et bien comme un return... Si une exception est lancée, jamais l'instruction
Code:
return ligne
ne sera exécutée. Wink

Je ne suis pas trop d'accord lorsque tu dis que ça agit "comme un return". L'expression suivant le return est évaluée et sa valeur est retournée au code appelant la fonction (si son type et correct, sinon le compilateur pleure). Par contre lors du lancement d'une exception, ce n'est pas un retour au code appelant qui se fait mais une mise en route du mécanisme d'exception de Java ... exception qui sera traitée par le bloc catch adéquat.

Pour moi, ces deux choses n'ont rien à voir. La seule "similitide" c'est que lors d'un throw et d'un return la suite n'est pas exécutée.

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: Projet2 class plateau( premier ligne occupe )2

Message  Contenu sponsorisé Aujourd'hui à 20:41


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum