Sintaxis de la sentencia switch

switch (expresion) {
    case literal_1:
        // conjunto de instrucciones 1
        break;
    case literal_2:
        // conjunto de instrucciones 2
        break;
    case literal_n:
        // conjunto de instrucciones n
        break;
    default:
        // conjunto de instrucciones por defecto
        break;
}

Descripción

  • expresion: Es la variable o expresión que se va a evaluar.
  • case literal: Representa un posible valor de la expresión. Si la expresión coincide con el valor literal, se ejecutan las instrucciones correspondientes.
  • break: Finaliza el caso actual y sale del bloque switch. Si se omite, la ejecución continúa con el siguiente caso (esto se llama "fall-through").
  • default: Opcional. Se ejecuta si ninguno de los casos coincide con la expresión. Es similar a un else en una sentencia if.

Comparación con if

A diferencia de la sentencia if, switch compara el valor de la variable con cada case. Si encuentra una coincidencia, ejecuta las instrucciones correspondientes hasta encontrar un break.

Programa final

A continuación, se presenta un programa que solicita al usuario que ingrese un número entre 1 y 5 y usa una sentencia switch para determinar qué número fue ingresado:

#include <iostream>

using namespace std;

int main() {
    int numero;

    cout << "Digite un numero entre 1-5: ";
    cin >> numero;

    switch (numero) {
        case 1: 
            cout << "El numero es 1." << endl; 
            break;
        case 2: 
            cout << "El numero es 2." << endl; 
            break;
        case 3: 
            cout << "El numero es 3." << endl; 
            break;
        case 4: 
            cout << "El numero es 4." << endl; 
            break;
        case 5: 
            cout << "El numero es 5." << endl; 
            break;
        default: 
            cout << "No esta en el rango 1-5" << endl;
    }

    return 0;
}

En este programa:

  1. Se declara una variable numero para almacenar el número ingresado por el usuario.
  2. Se solicita al usuario que ingrese un número entre 1 y 5.
  3. Se utiliza una sentencia switch para verificar el valor de numero:
    • Si el valor de numero es 1, se imprime "El numero es 1."
    • Si el valor de numero es 2, se imprime "El numero es 2."
    • Si el valor de numero es 3, se imprime "El numero es 3."
    • Si el valor de numero es 4, se imprime "El numero es 4."
    • Si el valor de numero es 5, se imprime "El numero es 5."
  4. Si el valor ingresado no está en el rango de 1 a 5, se ejecuta la instrucción del bloque default y se imprime "No está en el rango 1-5".