fifita92
-
13 mai 2013 à 16:10
Whismeril
Messages postés18991Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mars 2024
-
13 mai 2013 à 18:39
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++;
}
}
Whismeril
Messages postés18991Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mars 2024654 13 mai 2013 à 17:46
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.