Operator Precedence
Parte de la sección Lógica y Flujo del Journey de C# de Coddy — lección 38 de 66.
La precedencia de operadores determina el orden en que se evalúan los operadores en una expresión. Comprender la precedencia es crucial para escribir expresiones lógicas correctas.
Mira este ejemplo:
int result = 5 + 3 * 2;¿Cuál es el valor de result? Es 11, no 16, porque la multiplicación tiene mayor precedencia que la suma.
Aquí hay un orden de precedencia simplificado (de mayor a menor):
- Paréntesis
() - Multiplicación/División
* / % - Suma/Resta
+ -
- Operadores de comparación
< > <= >= - Operadores de igualdad
== !=
- AND lógico
&& - OR lógico
|| - Operadores de asignación
= += -=etc.
Veamos cómo se aplica esto:
bool result = 5 > 3 && 10 < 20 || 7 == 8;Primero, se evalúan las comparaciones: 5 > 3 es true, 10 < 20 es true, y 7 == 8 es false.
Luego, AND lógico: true && true es true.
Finalmente, OR lógico: true || false es true.
Entonces el resultado es true.
Utiliza paréntesis para hacer tu código más claro:
bool result = (5 > 3 && 10 < 20) || (7 == 8);Desafío
FácilCrea un método llamado EvaluateExpression que tome tres enteros (a, b, c) y devuelva un booleano.
Tu método debe devolver el resultado de esta expresión:a > b || a == c && b < c
Luego, crea otro método llamado EvaluateWithParentheses que evalúe:(a > b || a == c) && b < c
Tu programa debe leer tres enteros desde la consola e imprimir los resultados de ambas evaluaciones en líneas separadas.
Hoja de referencia
La precedencia de operadores determina el orden en que se evalúan los operadores en una expresión.
Orden de precedencia (de mayor a menor):
- Paréntesis
() - Multiplicación/División
* / % - Suma/Resta
+ - - Operadores de comparación
< > <= >= - Operadores de igualdad
== != - AND lógico
&& - OR lógico
|| - Operadores de asignación
= += -=etc.
Ejemplo:
int result = 5 + 3 * 2; // result is 11, not 16Expresión lógica compleja:
bool result = 5 > 3 && 10 < 20 || 7 == 8;
// Evaluates to: true && true || false = true || false = trueUsa paréntesis para mayor claridad:
bool result = (5 > 3 && 10 < 20) || (7 == 8);Pruébalo tú mismo
using System;
class Program
{
public static bool EvaluateExpression(int a, int b, int c)
{
// Escribe tu código aquí
}
public static bool EvaluateWithParentheses(int a, int b, int c)
{
// Escribe tu código aquí
}
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());
// Llama a tus métodos e imprime los resultados
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
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