Menu
Coddy logo textTech

If vs. Switch Comparison

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

C# proporciona dos formas principales para manejar múltiples condiciones: sentencias if-else y sentencias switch. Cada una tiene sus fortalezas en diferentes escenarios.

Las sentencias if-else son flexibles y pueden manejar cualquier tipo de condición:

string grade = "B";

if (grade == "A")
{
    Console.WriteLine("Excellent");
}
else if (grade == "B")
{
    Console.WriteLine("Good");
}
else if (grade == "C")
{
    Console.WriteLine("Satisfactory");
}
else
{
    Console.WriteLine("Needs improvement");
}

Las sentencias switch son más limpias cuando se compara una sola variable contra múltiples valores constantes:

string grade = "B";

switch (grade)
{
    case "A":
        Console.WriteLine("Excellent");
        break;
    case "B":
        Console.WriteLine("Good");
        break;
    case "C":
        Console.WriteLine("Satisfactory");
        break;
    default:
        Console.WriteLine("Needs improvement");
        break;
}

El switch puede agrupar múltiples casos que comparten el mismo resultado apilando etiquetas case juntas — esto se llama fall-through. Cuando varios casos no tienen código entre ellos, todos ejecutan el mismo bloque:

char dayCode = 'S';

switch (dayCode)
{
    case 'M':
    case 'T':
    case 'W':
    case 'R':
    case 'F':
        Console.WriteLine("Weekday");
        break;
    case 'S':
    case 'U':
        Console.WriteLine("Weekend");
        break;
    default:
        Console.WriteLine("Unknown day");
        break;
}

Aquí, 'S' y 'U' ambos caen hasta la misma llamada Console.WriteLine("Weekend"). Apilar etiquetas case vacías como esta es la forma estándar de agrupar casos en C#.

challenge icon

Desafío

Intermedio

Crea un método llamado convertGradeToPoints que:

  1. Toma una calificación de letra como parámetro string
  2. La convierte a un punto de calificación numérico usando tanto los enfoques switch como if-else
  3. El método debe implementar ambos enfoques y devolver el resultado de la implementación switch
  4. Usa estas conversiones de calificaciones:
    • "A" o "a" = 4
    • "B" o "b" = 3
    • "C" o "c" = 2
    • "D" o "d" = 1
    • "F" o "f" = 0
    • Cualquier otra entrada = -1

Hoja de referencia

C# proporciona dos formas principales para manejar múltiples condiciones: instrucciones if-else y instrucciones switch.

Las instrucciones if-else son flexibles y pueden manejar cualquier tipo de condición:

string grade = "B";

if (grade == "A")
{
    Console.WriteLine("Excellent");
}
else if (grade == "B")
{
    Console.WriteLine("Good");
}
else if (grade == "C")
{
    Console.WriteLine("Satisfactory");
}
else
{
    Console.WriteLine("Needs improvement");
}

Las instrucciones switch son más limpias al comparar una sola variable contra múltiples valores constantes:

string grade = "B";

switch (grade)
{
    case "A":
        Console.WriteLine("Excellent");
        break;
    case "B":
        Console.WriteLine("Good");
        break;
    case "C":
        Console.WriteLine("Satisfactory");
        break;
    default:
        Console.WriteLine("Needs improvement");
        break;
}

Las instrucciones switch pueden agrupar múltiples casos (fall-through) para compartir el mismo resultado apilando etiquetas case:

char dayCode = 'S';

switch (dayCode)
{
    case 'M':
    case 'T':
    case 'W':
    case 'F':
        Console.WriteLine("Weekday");
        break;
    case 'S':
    case 'U':
        Console.WriteLine("Weekend");
        break;
    default:
        Console.WriteLine("Unknown day");
        break;
}

Pruébalo tú mismo

public class ConvertGradeToPoints
{
    // Implementa el método convertGradeToPoints
    public static int convertGradeToPoints(string letterGrade)
    {
        // Escribe tu código aquí
        
    }
}
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