Operator Precedence
Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy — Lektion 38 von 66.
Die Operatorrangfolge bestimmt die Reihenfolge, in der Operatoren in einem Ausdruck ausgewertet werden. Das Verständnis der Rangfolge ist entscheidend für das Schreiben korrekter logischer Ausdrücke.
Sehen Sie sich dieses Beispiel an:
int result = 5 + 3 * 2;Was ist der Wert von result? Es ist 11, nicht 16, weil die Multiplikation eine höhere Präzedenz als die Addition hat.
Hier ist eine vereinfachte Präzedenzordnung (von höchster zu niedrigster):
- Klammern
() - Multiplikation/Division
* / % - Addition/Subtraktion
+ -
- Vergleichsoperatoren
< > <= >= - Gleichheitsoperatoren
== !=
- Logisches AND
&& - Logisches OR
|| - Zuweisungsoperatoren
= += -=usw.
Lassen Sie uns sehen, wie das angewendet wird:
bool result = 5 > 3 && 10 < 20 || 7 == 8;Zuerst werden die Vergleiche ausgewertet: 5 > 3 ist true, 10 < 20 ist true, und 7 == 8 ist false.
Dann logisches UND: true && true ist true.
Schließlich logisches ODER: true || false ist true.
Also ist das Ergebnis true.
Verwenden Sie Klammern, um Ihren Code klarer zu machen:
bool result = (5 > 3 && 10 < 20) || (7 == 8);Aufgabe
EinfachErstellen Sie eine Methode namens EvaluateExpression, die drei Ganzzahlen (a, b, c) annimmt und einen booleschen Wert zurückgibt.
Ihre Methode sollte das Ergebnis dieses Ausdrucks zurückgeben:a > b || a == c && b < c
Erstellen Sie dann eine weitere Methode namens EvaluateWithParentheses, die auswertet:(a > b || a == c) && b < c
Ihr Programm sollte drei Ganzzahlen von der Konsole einlesen und die Ergebnisse beider Auswertungen in separaten Zeilen ausgeben.
Spickzettel
Operatorrangfolge bestimmt die Reihenfolge, in der Operatoren in einem Ausdruck ausgewertet werden.
Rangfolge (von höchster zu niedrigster):
- Klammern
() - Multiplikation/Division
* / % - Addition/Subtraktion
+ - - Vergleichsoperatoren
< > <= >= - Gleichheitsoperatoren
== != - Logisches UND
&& - Logisches ODER
|| - Zuweisungsoperatoren
= += -=usw.
Beispiel:
int result = 5 + 3 * 2; // result is 11, not 16Komplexer logischer Ausdruck:
bool result = 5 > 3 && 10 < 20 || 7 == 8;
// Evaluates to: true && true || false = true || false = trueVerwenden Sie Klammern für Klarheit:
bool result = (5 > 3 && 10 < 20) || (7 == 8);Probier es selbst
using System;
class Program
{
public static bool EvaluateExpression(int a, int b, int c)
{
// Schreibe deinen Code hier
}
public static bool EvaluateWithParentheses(int a, int b, int c)
{
// Schreibe deinen Code hier
}
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());
// Rufe deine Methoden auf und drucke die Ergebnisse aus
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety