Type de retourne [Résolu]

Signaler
-
Messages postés
15921
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 mai 2021
-
Bonjour SVP si quelqu'un peut m'aider ,j'ai une fonction simple qui récupère un entier mais me donne une erreur "not all code paths return a value " même si je retourne voila le code de la fonction .
       
private int fct(int n)
        {
            int i=0;
        while (!n.Equals(Lid[i]))
        {
            if (n.Equals(Lp[i]))
            {
                MessageBox.Show("impossible");
              return 1;
            }
            
                i++;
            

        }

        }

3 réponses

Messages postés
15921
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 mai 2021
540
Bonsoir c'est normal, le compilateur par du principe qu'il y a une possibilité que tu aies fini la boucle while sans avoir retourné quoique ce soit.
Il te faut donc retourner quelque chose après la boucle while.

private int fct(int n)
        {
            int i=0;
            while (!n.Equals(Lid[i]))
            {
              if (n.Equals(Lp[i]))
              {
                MessageBox.Show("impossible");
                return 1;
              }
            
              i++;
            }
           
            return -9999;//ici je retourne autre chose
        }




Par contre si tu as 10 enregistrements dans Lid[], et qu'aucun n'est égal à n, alors la boucle va passer au 11eme enregistrement et là ça va bugger.
Tu devrais utiliser une boucle for avec le nombre d'enregistrement de Lid[] en butée.

Whismeril
Merci pour votre aide :)
Messages postés
15921
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 mai 2021
540
De rien, clique sur réponse acceptée, ainsi le sujet apparaitra résolu.


Whismeril