Évaluation court-circuit
Fait partie de la section Logique & Flux du Journey C# de Coddy. Leçon 36 sur 66.
L’évaluation en court-circuit est une technique d’optimisation en C# où le deuxième opérande des opérateurs logiques AND (&&) et OR (||) n’est évalué que lorsque cela est nécessaire.
Pour l’opérateur logique AND (&&), si le premier opérande est false, le résultat sera toujours false, quel que soit le deuxième opérande :
bool result = false && SomeMethod();Dans cet exemple, SomeMethod() ne sera pas appelée, car le premier opérande est déjà false.
Pour l’opérateur logique OR (||), si le premier opérande est true, le résultat sera toujours true, quel que soit le deuxième opérande :
bool result = true || SomeMethod();Ici, SomeMethod() ne sera pas appelée, car le premier opérande est déjà true.
Ce comportement peut être utilisé pour éviter les erreurs, par exemple en vérifiant si un objet est null avant d’accéder à ses propriétés :
// Sûr - si student est null, le côté droit ne sera pas évalué
if (student != null && student.Grade > 70)
{
Console.WriteLine("Student passed!");
}Défi
FacileCréez une méthode nommée ProcessUserInput qui prend deux arguments :
- Une chaîne (
input) - Un entier (
minLength)
La méthode doit :
- Vérifier que l’entrée n’est pas nulle
- Vérifier que la longueur de l’entrée est au moins égale à
minLength - Uniquement si les deux conditions sont vraies, afficher "Valid input: " suivi de l’entrée
- Si l’une ou l’autre des conditions échoue, afficher "Invalid input"
Utilisez l’évaluation en court-circuit pour éviter toute NullReferenceException potentielle.
Essayez vous-même
using System;
class ProcessUserInput
{
public static void processUserInput(string input, int minLength)
{
// Écrivez votre code ici
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Tableaux multidimensionnels
Bases des tableaux 2DDéclaration et initialisation en 2DAccès aux éléments d'un tableau 2DBoucles imbriquées et tableaux 2DTableaux irréguliersOpérations matricielles courantesRécapitulatif - Multidimensionnel4Techniques de contrôle de flux
Retours anticipésClauses de gardeInstructions de saut (goto)Break et ContinueAplatir les conditionnelles imbriquées7Opérateurs logiques avancés
Évaluation court-circuitOpérateurs logiques conditionnelsPriorité des opérateursRécapitulatif - Opérateurs avancés2Prise de décision avancée
Conditions multiplesLogique booléenne complexeComparaison If vs SwitchInstructions Switch imbriquéesRécapitulatif - Décisions avancées5Gestion des exceptions
Bases du Try-CatchTypes d'exceptionsBlocs Catch multiplesManipulation de fichiersLe bloc FinallyUsing vs Try-FinallyExceptions personnaliséesRécapitulatif - Gestion des erreurs3Améliorations des boucles
Performance des bouclesItération de structures complexesChaque type de boucleRefactorisation des bouclesRécapitulatif - Boucles optimisées6Gestion des valeurs nulles
Les bases des références nullesTypes valeur nullablesPatterns de vérification de nullitéProgrammation défensiveRécapitulatif - Null SafetyEntraînez-vous par vous-même : Compilateur C# en ligne