Menu
Coddy logo textTech

Guard Clauses

Parte de la sección Lógica y Flujo del Journey de C# de Coddy — lección 19 de 66.

Las cláusulas de guarda son sentencias condicionales al inicio de un método que comprueban casos límite o entradas inválidas y retornan anticipadamente si se cumplen dichas condiciones.

Vamos a crear un método sin una cláusula de guarda:

public void ProcessOrder(Order order)
{
    if (order != null)
    {
        // Procesar el pedido
        // Muchas líneas de código aquí...
    }
}

Ahora, vamos a reescribirlo con una cláusula de guarda:

public void ProcessOrder(Order order)
{
    if (order == null)
    {
        return; // Cláusula de guarda - salir temprano si el pedido es nulo
    }
    
    // Procesar el pedido
    // Muchas líneas de código aquí...
}

Las cláusulas de guarda mejoran la legibilidad al reducir el anidamiento y manejar los casos excepcionales al principio de un método.

challenge icon

Desafío

Fácil

Crea un método llamado DivideNumbers que reciba dos enteros, numerator y denominator.

  1. Añade una cláusula de guarda para comprobar si el denominador es cero.
  2. Si el denominador es cero, imprime: "Cannot divide by zero" y devuelve 0.
  3. De lo contrario, divide el numerador por el denominador y devuelve el resultado.

Hoja de referencia

Las cláusulas de guarda son sentencias condicionales al principio de un método que comprueban casos límite o entradas no válidas y retornan anticipadamente si se cumplen esas condiciones.

Sin cláusula de guarda:

public void ProcessOrder(Order order)
{
    if (order != null)
    {
        // Procesar el pedido
        // Muchas líneas de código aquí...
    }
}

Con cláusula de guarda:

public void ProcessOrder(Order order)
{
    if (order == null)
    {
        return; // Cláusula de guarda - salir anticipadamente si order es null
    }
    
    // Procesar el pedido
    // Muchas líneas de código aquí...
}

Las cláusulas de guarda mejoran la legibilidad al reducir el anidamiento y manejar casos excepcionales al principio de un método.

Pruébalo tú mismo

using System;

public class Program
{
    public static int DivideNumbers(int numerator, int denominator)
    {
        // Escribe tu código aquí
    }
    
    public static void Main()
    {
        // Leer entradas de la consola
        int numerator = Convert.ToInt32(Console.ReadLine());
        int denominator = Convert.ToInt32(Console.ReadLine());
        
        // Llamar al método DivideNumbers
        int result = DivideNumbers(numerator, denominator);
        
        // Imprimir el resultado
        Console.WriteLine(result);
    }
}
quiz iconPonte a prueba

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