Opérateurs logiques Partie 3
Fait partie de la section Fondamentaux du Journey C# de Coddy — leçon 24 sur 69.
Lors de la vérification de plusieurs conditions, l'ordinateur s'arrête de vérifier dès qu'il connaît la réponse finale (c'est ce qu'on appelle l'évaluation court-circuit).
Par exemple :
int x = 0;
int y = 5;
bool result = x != 0 && y / x > 2;Ici x est égal à 0, par conséquent il n'évaluera pas y / x > 2. Si nous inversions l'ordre :
bool result = y / x > 2 && x != 0;Cela entraînera une erreur car y sera divisé par 0, ce qui est illégal en mathématiques.
Cette technique est utilisée pour optimiser l'évaluation des expressions logiques. Par exemple :
int a = 0;
int b = 2;
int c = 3;
int d = 5;
bool result = (a > 0 && b < 2) || (c < -5 && d < 10);Dans cet exemple b < 2 et d < 10 ne seront pas évalués car a > 0 et c < -5 sont tous deux faux.
Défi
DébutantCréons un programme pour décider si c'est une bonne journée pour la production d'énergie par panneaux solaires
Initialisez ces variables :
isSunnyavec la valeur truewindSpeedavec la valeur 5.4temperatureavec la valeur 23solarPanelOutputavec la valeur 9isCloudyavec la valeur false
Créez une expression logique qui vérifie TOUTES ces conditions :
- C'est ensoleillé
- La vitesse du vent est inférieure à 10
- La production du panneau solaire est inférieure à 15
- La température est supérieure à 20 OU il n'y a pas de nuages
Aide-mémoire
L'évaluation en court-circuit signifie que l'ordinateur arrête de vérifier les conditions dès qu'il connaît la réponse finale.
Avec && (ET), si la première condition est fausse, la seconde ne sera pas évaluée :
int x = 0;
int y = 5;
bool result = x != 0 && y / x > 2; // y / x > 2 n'est pas évaluéAvec || (OU), si la première condition est vraie, la seconde ne sera pas évaluée :
bool result = (a > 0 && b < 2) || (c < -5 && d < 10);
// Si a > 0 est faux, alors b < 2 ne sera pas évalué
// Si la première partie est fausse mais que c < -5 est également faux, alors d < 10 ne sera pas évaluéCette optimisation évite les calculs inutiles et peut prévenir des erreurs telles que la division par zéro.
Essayez vous-même
using System;
public class Program {
public static void Main(string[] args) {
// Initialiser les variables
// L'expression logique complète
bool result =
// Ne pas supprimer les lignes ci-dessous
Console.WriteLine("Checking conditions for solar energy production...");
Console.WriteLine("1. Is it sunny? " + isSunny);
Console.WriteLine("2. Is wind speed safe? " + (windSpeed < 10));
Console.WriteLine("3. Can panels produce more? " + (solarPanelOutput < 15));
Console.WriteLine("4. Is temperature good OR no clouds? " + (temperature > 20 || !isCloudy));
Console.WriteLine("\nFinal result - Good day for solar energy production: " + result);
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Les opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloIncrémentation / DécrémentationPost-incrémentation / Post-décrémentationRaccourcis arithmétiques7Entrées/Sorties de base
Sortie de baseInterpolation de chaînesLecture d'entréeParserRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux10Méthodes (Fonctions)
Déclaration de méthodesParamètres de méthodeTypes de retourParamètres optionnelsRécapitulatif - Fonction de validationMéthodes Void13Itération sur les collections
Utilisation de la boucle ForBoucle ForeachOpérations courantes sur les tableaux5Opérateurs Partie 2
Opérateurs de comparaisonOpérateurs logiques Partie 1Opérateurs logiques Partie 2Récapitulatif - Logique simpleOpérateurs logiques Partie 33Variables - Partie 2
VarConstantesConventions de nommageRécapitulatif - Initialisation des variablesType Casting6Prise de décision
Instruction IfIf - ElseInstruction SwitchOpérateur ternaireRécapitulatif - If ElseIf - Else imbriqués9Boucles
Boucle ForBoucle WhileBoucle Do WhileBreakContinueBoucles imbriquéesBoucle infinieRécapitulatif - Entrée dynamique12Opérations sur les chaînes
Méthodes de chaînes - Partie 1Méthodes de chaînes - Partie 2Formatage de chaînes