Evaluación de cortocircuito
Parte de la sección Lógica y Flujo del Journey de C# de Coddy. Lección 36 de 66.
La evaluación de cortocircuito es una técnica de optimización en C# en la que el segundo operando de los operadores lógicos AND (&&) y OR (||) se evalúa solo cuando es necesario.
Para el AND lógico (&&), si el primer operando es false, el resultado siempre será false, independientemente del segundo operando:
bool result = false && SomeMethod();En este ejemplo, no se llamará a SomeMethod() porque el primer operando ya es false.
Para el OR lógico (||), si el primer operando es true, el resultado siempre será true, independientemente del segundo operando:
bool result = true || SomeMethod();Aquí, no se llamará a SomeMethod() porque el primer operando ya es true.
Este comportamiento se puede usar para prevenir errores, como comprobar si un objeto es null antes de acceder a sus propiedades:
// Seguro - si student es null, el lado derecho no se evaluará
if (student != null && student.Grade > 70)
{
Console.WriteLine("Student passed!");
}Desafío
FácilCrea un método llamado ProcessUserInput que acepte dos argumentos:
- Una cadena (
input) - Un entero (
minLength)
El método debe:
- Comprobar si la entrada no es nula
- Comprobar si la longitud de la entrada es al menos
minLength - Solo si ambas condiciones son verdaderas, imprimir "Valid input: " seguido de la entrada
- Si alguna de las condiciones falla, imprimir "Invalid input"
Usa evaluación de cortocircuito para evitar cualquier posible NullReferenceException.
Pruébalo tú mismo
using System;
class ProcessUserInput
{
public static void processUserInput(string input, int minLength)
{
// Escribe tu código aquí
}
}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