Priorité des opérateurs
Fait partie de la section Logique & Flux du Journey C# de Coddy — leçon 38 sur 66.
La précédence des opérateurs détermine l'ordre dans lequel les opérateurs sont évalués dans une expression. Comprendre la précédence est crucial pour écrire des expressions logiques correctes.
Regardez cet exemple :
int result = 5 + 3 * 2;Quelle est la valeur de result ? C'est 11, pas 16, car la multiplication a une priorité supérieure à l'addition.
Voici un ordre de précédence simplifié (du plus élevé au plus bas) :
- Parenthèses
() - Multiplication/Division
* / % - Addition/Soustraction
+ -
- Opérateurs de comparaison
< > <= >= - Opérateurs d'égalité
== !=
- ET logique
&& - OU logique
|| - Opérateurs d'affectation
= += -=etc.
Voyons comment cela s'applique :
bool result = 5 > 3 && 10 < 20 || 7 == 8;D'abord, les comparaisons sont évaluées : 5 > 3 est true, 10 < 20 est true, et 7 == 8 est false.
Ensuite, ET logique : true && true est true.
Enfin, OU logique : true || false est true.
Donc le résultat est true.
Utilisez des parenthèses pour rendre votre code plus clair :
bool result = (5 > 3 && 10 < 20) || (7 == 8);Défi
FacileCréez une méthode nommée EvaluateExpression qui prend trois entiers (a, b, c) et retourne un booléen.
Votre méthode devrait retourner le résultat de cette expression :a > b || a == c && b < c
Ensuite, créez une autre méthode nommée EvaluateWithParentheses qui évalue :(a > b || a == c) && b < c
Votre programme devrait lire trois entiers depuis la console et imprimer les résultats des deux évaluations sur des lignes séparées.
Aide-mémoire
La précédence des opérateurs détermine l'ordre dans lequel les opérateurs sont évalués dans une expression.
Ordre de précédence (du plus élevé au plus bas) :
- Parenthèses
() - Multiplication/Division
* / % - Addition/Soustraction
+ - - Opérateurs de comparaison
< > <= >= - Opérateurs d'égalité
== != - ET logique
&& - OU logique
|| - Opérateurs d'affectation
= += -=etc.
Exemple :
int result = 5 + 3 * 2; // result vaut 11, et non 16Expression logique complexe :
bool result = 5 > 3 && 10 < 20 || 7 == 8;
// S'évalue en : true && true || false = true || false = trueUtilisez des parenthèses pour plus de clarté :
bool result = (5 > 3 && 10 < 20) || (7 == 8);Essayez vous-même
using System;
class Program
{
public static bool EvaluateExpression(int a, int b, int c)
{
// Écrivez votre code ici
}
public static bool EvaluateWithParentheses(int a, int b, int c)
{
// Écrivez votre code ici
}
static void Main(string[] args)
{
Console.WriteLine("Enter three integers:");
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int c = int.Parse(Console.ReadLine());
// Appelez vos méthodes et affichez les résultats
}
}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 Safety