Menu
Coddy logo textTech

Évaluation court-circuit

Fait partie de la section Logique & Flux du Journey C# de Coddy — leçon 36 sur 66.

L'évaluation à court-circuit est une technique d'optimisation en C# où le second opérande des opérateurs logiques ET (&&) et OU (||) est évalué uniquement lorsque nécessaire.

Pour l'ET logique (&&), si le premier opérande est false, le résultat sera toujours false indépendamment du second opérande :

bool result = false && SomeMethod();

Dans cet exemple, SomeMethod() ne sera pas appelée parce que le premier opérande est déjà false.

Pour l'OU logique (||), si le premier opérande est true, le résultat sera toujours true indépendamment du second 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, comme vérifier si un objet est null avant d'accéder à ses propriétés :

// Safe - if student is null, the right side won't evaluate
if (student != null && student.Grade > 70)
{
    Console.WriteLine("Student passed!");
}
challenge icon

Défi

Facile

Créez une méthode nommée ProcessUserInput qui prend deux arguments :

  • Une chaîne de caractères (input)
  • Un entier (minLength)

La méthode doit :

  1. Vérifier si l'entrée n'est pas null
  2. Vérifier si la longueur de l'entrée est au moins minLength
  3. Seulement si les deux conditions sont vraies, afficher "Valid input: " suivi de l'entrée
  4. Si l'une des conditions échoue, afficher "Invalid input"

Utilisez l'évaluation à court-circuit pour éviter toute NullReferenceException potentielle.

Aide-mémoire

L'évaluation à court-circuit est une technique d'optimisation où le second opérande des opérateurs logiques n'est évalué que lorsque nécessaire.

Pour l'AND logique (&&), si le premier opérande est false, le second opérande n'est pas évalué :

bool result = false && SomeMethod(); // SomeMethod() won't be called

Pour l'OR logique (||), si le premier opérande est true, le second opérande n'est pas évalué :

bool result = true || SomeMethod(); // SomeMethod() won't be called

Cela évite les erreurs en vérifiant les conditions dans l'ordre :

// Safe - if student is null, student.Grade won't be accessed
if (student != null && student.Grade > 70)
{
    Console.WriteLine("Student passed!");
}

Essayez vous-même

using System;

class ProcessUserInput
{
    public static void processUserInput(string input, int minLength)
    {
        // Écrivez votre code ici
    }
}
quiz iconTestez-vous

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