El uso de la sentencia switch en C permite ejecutar diferentes bloques de código basados en el valor de una expresión. Es una alternativa más limpia y legible a múltiples sentencias if-else cuando se trata de comparar una variable con varios valores posibles.

Conceptos Clave

  1. Sintaxis Básica:

    switch (expresión) {
        case valor1:
            // Código a ejecutar si expresión == valor1
            break;
        case valor2:
            // Código a ejecutar si expresión == valor2
            break;
        ...
        default:
            // Código a ejecutar si expresión no coincide con ningún valor
    }
    
  2. Expresión: La expresión dentro del switch debe ser de un tipo de datos integral (como int o char).

  3. Casos: Cada case representa un valor posible de la expresión. Si la expresión coincide con el valor del case, se ejecuta el bloque de código correspondiente.

  4. Break: La sentencia break se utiliza para salir del switch después de ejecutar el código de un case. Sin break, la ejecución continuará en el siguiente case (comportamiento conocido como "fall-through").

  5. Default: El bloque default es opcional y se ejecuta si la expresión no coincide con ningún case.

Ejemplo Práctico

Vamos a ver un ejemplo práctico para entender mejor cómo funciona switch.

Ejemplo: Menú de Opciones

#include <stdio.h>

int main() {
    int opcion;

    printf("Menú de Opciones:\n");
    printf("1. Opción 1\n");
    printf("2. Opción 2\n");
    printf("3. Opción 3\n");
    printf("Ingrese su opción: ");
    scanf("%d", &opcion);

    switch (opcion) {
        case 1:
            printf("Has seleccionado la Opción 1.\n");
            break;
        case 2:
            printf("Has seleccionado la Opción 2.\n");
            break;
        case 3:
            printf("Has seleccionado la Opción 3.\n");
            break;
        default:
            printf("Opción no válida.\n");
    }

    return 0;
}

Explicación del Código

  1. Entrada del Usuario: Se solicita al usuario que ingrese una opción.
  2. Evaluación con switch: La variable opcion se evalúa en el switch.
  3. Casos:
    • Si opcion es 1, se imprime "Has seleccionado la Opción 1."
    • Si opcion es 2, se imprime "Has seleccionado la Opción 2."
    • Si opcion es 3, se imprime "Has seleccionado la Opción 3."
  4. Default: Si opcion no es 1, 2, o 3, se imprime "Opción no válida."

Ejercicio Práctico

Ejercicio 1: Calculadora Básica

Escribe un programa que actúe como una calculadora básica. El programa debe solicitar al usuario dos números y una operación (suma, resta, multiplicación, división) y luego usar switch para realizar la operación correspondiente.

Instrucciones

  1. Solicita al usuario dos números.
  2. Solicita al usuario que ingrese una operación (+, -, *, /).
  3. Usa switch para realizar la operación y mostrar el resultado.

Solución

#include <stdio.h>

int main() {
    double num1, num2;
    char operacion;

    printf("Ingrese el primer número: ");
    scanf("%lf", &num1);
    printf("Ingrese el segundo número: ");
    scanf("%lf", &num2);
    printf("Ingrese la operación (+, -, *, /): ");
    scanf(" %c", &operacion);

    switch (operacion) {
        case '+':
            printf("Resultado: %.2lf\n", num1 + num2);
            break;
        case '-':
            printf("Resultado: %.2lf\n", num1 - num2);
            break;
        case '*':
            printf("Resultado: %.2lf\n", num1 * num2);
            break;
        case '/':
            if (num2 != 0) {
                printf("Resultado: %.2lf\n", num1 / num2);
            } else {
                printf("Error: División por cero.\n");
            }
            break;
        default:
            printf("Operación no válida.\n");
    }

    return 0;
}

Explicación del Código

  1. Entrada del Usuario: Se solicitan dos números y una operación.
  2. Evaluación con switch: La variable operacion se evalúa en el switch.
  3. Casos:
    • Si operacion es +, se realiza la suma.
    • Si operacion es -, se realiza la resta.
    • Si operacion es *, se realiza la multiplicación.
    • Si operacion es /, se verifica que el divisor no sea cero y se realiza la división.
  4. Default: Si operacion no es +, -, *, o /, se imprime "Operación no válida."

Conclusión

La sentencia switch es una herramienta poderosa para manejar múltiples condiciones de manera clara y organizada. Es especialmente útil cuando se necesita comparar una variable con varios valores posibles. Asegúrate de usar break para evitar el comportamiento de "fall-through" a menos que sea intencional. Con la práctica, switch se convertirá en una parte esencial de tu conjunto de herramientas de programación en C.

Curso de Programación en C

Módulo 1: Introducción a C

Módulo 2: Tipos de Datos y Variables

Módulo 3: Flujo de Control

Módulo 4: Funciones

Módulo 5: Arreglos y Cadenas

Módulo 6: Punteros

Módulo 7: Estructuras y Uniones

Módulo 8: Asignación Dinámica de Memoria

Módulo 9: Manejo de Archivos

Módulo 10: Temas Avanzados

Módulo 11: Mejores Prácticas y Optimización

Módulo 12: Proyecto y Evaluación Final

© Copyright 2024. Todos los derechos reservados