Precedencia de operadores
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.
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
1Arrays multidimensionales
Conceptos básicos de arrays 2DDeclaración e inicialización de arrays 2DAcceso a elementos de arrays 2DBucles anidados con arrays 2DArrays irregularesOperaciones comunes con matricesRepaso: arrays multidimensionales4Técnicas de control de flujo
Retornos anticipadosCláusulas de guardaSentencias de salto (goto)Break y ContinueAplanar condicionales anidados7Operadores lógicos avanzados
Evaluación de cortocircuitoOperadores lógicos condicionalesPrecedencia de operadoresRepaso: operadores avanzados2Toma de decisiones avanzada
Múltiples condicionesLógica booleana complejaComparación entre If y SwitchSentencias Switch anidadasRepaso: decisiones avanzadas5Manejo de excepciones
Fundamentos de Try-CatchTipos de excepcionesMúltiples bloques CatchTrabajo con archivosBloque FinallyUso de Using frente a Try-FinallyExcepciones personalizadasRepaso: manejo de errores3Mejoras de bucles
Rendimiento de buclesIteración de estructuras complejasCada tipo de bucleRefactorización de buclesRepaso: bucles optimizados6Manejo de valores nulos
Conceptos básicos de referencias nulasTipos de valor anulablesPatrones de comprobación de valores nulosProgramación defensivaRepaso: seguridad frente a valores nulosPractica por tu cuenta: Compilador de C# online