Maison >développement back-end >C++ >Comment corriger l'erreur 'tous les chemins de code ne renvoie pas une valeur' dans C #?
Dépannage du C # "Tous les chemins de code ne renvoient pas une valeur" Erreur
L'erreur du compilateur C # commune "Pas tous les chemins de code Renvoie une valeur" surgit lorsqu'une méthode déclarée renvoie une valeur (par exemple, int
, bool
, string
) ne renvoie pas explicitement une valeur dans chaque scénario possible. Cela se produit souvent avec des instructions conditionnelles (comme if
/ else
blocs) ou des boucles.
Examinons un exemple typique: déterminer si un entier est uniformément divisible par tous les nombres de 1 à 20. L'extrait de code suivant illustre ce problème:
<code class="language-csharp">public static bool IsDivisibleByOneToTwenty(int num) { for (int j = 1; j <= 20; j++) { if (num % j != 0) { return false; // Returns false if not divisible by j } } // Missing return statement here! }</code>
Le compilateur signale une erreur car si la boucle se termine sans trouver de non-divisor, aucune instruction return
n'est exécutée. Le code implique implicitement un rendement true
(si le nombre est divisible par tous les nombres de 1 à 20), mais ce n'est pas explicitement indiqué.
Voici le code corrigé:
<code class="language-csharp">public static bool IsDivisibleByOneToTwenty(int num) { for (int j = 1; j <= 20; j++) { if (num % j != 0) { return false; } } return true; // Explicitly return true if the loop completes successfully }</code>
Ajouter return true;
Une fois la boucle garantit qu'une valeur est renvoyée dans tous les chemins d'exécution, en résolvant l'erreur du compilateur. Ce rendement explicite gère le cas où le nombre est en effet divisible par tous les nombres de 1 à 20.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!