🔷 C#

Voici la traduction de l'article du russe vers le français, en respectant toutes les règles :

Qu'est-ce que c'est et pourquoi ?

Imagine que tu joues à un jeu vidéo. Pour passer un niveau, tu dois vérifier différentes conditions : "Si le héros a moins de 10 vies, alors active la protection" ou "Si le joueur a appuyé sur le bouton ET a collecté toutes les pièces, ouvre la porte".

En programmation, ces vérifications sont effectuées par les opérateurs de comparaison et les opérateurs logiques. Ils aident le programme à "penser" et à prendre des décisions. Sans eux, le code ne serait qu'une liste de commandes qui s'exécutent toujours de la même manière, alors qu'ainsi le programme peut réagir à différentes situations.

Par exemple, tu écris une calculatrice de notes. Si l'élève a obtenu plus de 90 points — "Excellent", si moins de 50 — "Mauvais". Ou tu vérifies si l'utilisateur peut se connecter au système : si le mot de passe est correct ET le compte n'est pas bloqué — laisse-le entrer.

Les opérateurs de comparaison comparent des nombres ou du texte. Les opérateurs logiques combinent plusieurs conditions en une seule. Ensemble, ils sont la base de tout code "intelligent".

Syntaxe et exemples de code

En C#, les opérateurs de comparaison se présentent ainsi :

  • == — égal (attention : deux signes égal, pas un !)
  • != — différent
  • > — supérieur
  • < — inférieur
  • >= — supérieur ou égal
  • <= — inférieur ou égal

Opérateurs logiques :

  • && — ET (les deux conditions doivent être vraies)
  • || — OU (au moins une condition est vraie)
  • ! — NON (inverse le vrai en faux et vice versa)

Le résultat d'une comparaison est toujours true (vrai) ou false (faux).

Exemple 1 : Vérification de l'âge

int age = 14;
bool canDrive = age >= 18; // false, parce que 14 est inférieur à 18

if (canDrive)
{
    Console.WriteLine("Tu peux conduire !");
}
else
{
    Console.WriteLine("Grandis encore."); // Ceci s'exécutera
}

// Explication :
// age >= 18 — c'est une comparaison. Elle donne false.
// if vérifie true/false. Si true — exécute le premier bloc, si false — le second.

Exemple 2 : Vérification du login et du mot de passe

string login = "user123";
string password = "qwerty";

// Vérifions que le login est égal à "admin" ET le mot de passe égal à "12345"
if (login == "admin" && password == "12345")
{
    Console.WriteLine("Bienvenue, admin !");
}
else
{
    Console.WriteLine("Login ou mot de passe incorrect.");
}

// Explication :
// && signifie "ET". Les deux conditions doivent être true.
// login == "admin" — false (parce que login = "user123")
// Donc toute la condition est false — on va dans else.

Exemple 3 : Réduction pour les étudiants ou les retraités

int age = 20;
bool isStudent = true;

// Réduction si l'âge est inférieur à 18 OU si la personne est étudiante
if (age < 18 || isStudent)
{
    Console.WriteLine("Réduction de 50% !");
}
else
{
    Console.WriteLine("Plein tarif.");
}

// Explication :
// || signifie "OU". Un seul true suffit.
// age < 18 — false (20 n'est pas inférieur à 18)
// isStudent — true
// Donc la condition est true — la réduction est accordée.

Exemple 4 : Vérification qu'un nombre n'est pas nul

int number = 7;

if (number != 0)
{
    Console.WriteLine("Le nombre n'est pas nul, on peut diviser.");
}
else
{
    Console.WriteLine("On ne peut pas diviser par zéro !");
}

// Explication :
// != vérifie "différent de".
// 7 != 0 — c'est true, donc le premier bloc s'exécute.

Exemple 5 : Condition complexe avec NON

bool isRaining = false;
bool hasUmbrella = true;

// Si il NE pleut PAS OU si on a un parapluie — on peut sortir
if (!isRaining || hasUmbrella)
{
    Console.WriteLine("On va se promener !");
}
else
{
    Console.WriteLine("On reste à la maison.");
}

// Explication :
// !isRaining — c'est "NON isRaining". isRaining = false, donc !false = true.
// true || true = true — on sort.
// Si isRaining = true et hasUmbrella = false, alors !true = false, false || false = false — on reste à la maison.

Comparaison avec Python

En Python, les mêmes opérateurs se présentent presque de la même manière, mais il y a quelques différences :

  • Au lieu de && on écrit and
  • Au lieu de || on écrit or
  • Au lieu de ! on écrit not
  • Les opérateurs de comparaison sont les mêmes : ==, !=, >, <, >=, <=

Exemple en Python (le même qu'en C#) :

age = 14
can_drive = age >= 18  # False

if can_drive:
    print("Tu peux conduire !")
else:
    print("Grandis encore.")

# Opérateurs logiques :
login = "user123"
password = "qwerty"

if login == "admin" and password == "12345":
    print("Bienvenue, admin !")
else:
    print("Login ou mot de passe incorrect.")

La principale différence : en C#, les opérateurs logiques sont des symboles (&&, ||, !), tandis qu'en Python ce sont des mots (and, or, not). Pour le reste, la logique est la même.

Erreurs typiques des débutants

  1. Confondre = et ==
    = — c'est l'affectation (mettre une valeur dans une variable).
    == — c'est la comparaison (vérifier si les valeurs sont égales).
    Erreur : if (age = 18) — ce n'est pas permis ! Il faut if (age == 18).
  2. Oublier la priorité des opérations
    D'abord les comparaisons sont effectuées, puis les opérateurs logiques. Mais il est préférable d'utiliser des parenthèses pour plus de clarté.
    Exemple : if (age > 18 && name == "Tom" || score > 100) — on ne comprend pas ce qui était voulu. Correct : if ((age > 18 && name == "Tom") || score > 100).
  3. Confondre && et ||
    && exige que toutes les conditions soient vraies. || exige qu'au moins une condition soit vraie.