Problème avec l'instruction if !!

jerbiano Messages postés 62 Statut Membre -  
malaik5 Messages postés 282 Statut Membre -
Bonjour,

J'ai un probléme avec l'instruction if !! il me demande toujours d'initialiser rex et finalement quand je l'initialise il me retourne la valeur initialisé
voila le code
 public int NumInterface (String choix){ 

  
  int rex; 
   
  if (choix.substring(0).equals(0))  
    rex = 0;  
   
  else if(choix.substring(0).equals(1)) 
    rex = 1;  
   
        else if(choix.substring(0).equals(2)) 
     rex =2; 
  
   return rex; //erreur  
    
 }

Quelqu'un peut m'aider svp!?


Djerba4ever

6 réponses

le père
 
Bonjour

Quel est le problème ? Tu dis de retourner rex, il retourne la valeur qu'il y a dans rex, ce n'est pas ce que tu voulais ?

Remarque : si choix.substring(0) ne vaut ni 0, ni 1, ni 2, tu ne sais pas quelle est la valeur retournée car il n'y a pas de else à ton dernier if. Tu aurais dû l'initialiser avant, par exemple int rex=0;
Si tu es sûr ce sont les 3 seules valeurs possibles, tu n'as besoin d'aucun test, ta fonction se résume à

 public int NumInterface (String choix){ 
  return choix.substring(0);
 }
1
malaik5 Messages postés 282 Statut Membre 33
 
Bonjour,
un conseil qui pourra t'eviter des problemes,
evites les if imbriqués, utilise un switch,

Remarque:
si tu initialise le rex il te retourne la valeur initialisée, ce qui veut dire q'aucun de tes if n'a été satisfait, et c'est absolument normal, parce que la fonction

choix.substring(0).equals(0)

compare 2 string et toi dans ton code une des parties est un int, (0,1,2)
met comme dit précedement '0' '1' '2' au pire "0" "1" "2"

Bon courage
1
jerbiano Messages postés 62 Statut Membre
 
Bonjour

Lorsque j'initialise rex a 0 il me retourne toujours 0 en effet je veux que rex prend le premier chiffre de la chaîne choix car la chaîne choix commence soit par 1,par 2 ou par 3 alors je veux que la méthode NumInterface retourne le chiffre convenable selon la chaîne !
mais selon mon code il me retourne toujours la valeur initialiser!!!?
0
tatinba
 
bonjour,
tu verifies la chaine choix que tu passes comme parametre.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
le père
 
Si ta chaîne contient des caractères codés en ASCII, il faut que tu fasses tes comparaisons avec '0', '1', et '2', pas simplement avec 0,1 et 2.
Même remarque pour les valeurs retournées.
Es-tu sûr des valeurs avec lesquelles tu dois comparer ?
0
jerbiano Messages postés 62 Statut Membre
 
Voila l'utilisateurs doit choisir entre ces trois chaines présenté dans un JOptionPane :
les trois chaines:

0: \Device\NPF_{42AC2526-6C26-4758-A92A-B69F5B828060}(Microsoft)

1: \Device\NPF_{88EAAC03-C30C-40C9-ABAC-1DAFC366BB10}(Microsoft)

2: \Device\NPF_{9968DDEE-36DF-42CF-9D16-5EFFBFBEB373}(Microsoft)

le rôle de la fonction NumInterface est de retourné soit 1 ,2 ou trois selon le choix de l'utilisateur donc j'ai utilisé substring pour récupérer le premier chiffre Y a-t-il une autre solution d'après vous pour retourner le numéro de la chaîne en entier ?!
0