Estructura condicional de selección múltiple: switch

    Esta estructura permite definir un conjunto de dos o más bloques de código. Cuál de ellos se ejecute depende del valor de una expresión numérica, ya que cada bloque está asociado a uno o más posibles valores para dicha expresión. El comienzo de la estructura se indica con la palabra clave switch y a continuación la expresión numérica entre paréntesis. Luego, entre llaves, se colocan los posibles valores para el resultado de la expresión y las acciones asociadas, de la siguiente manera: primero la palabra clave case, luego el posible valor numérico seguido de dos puntos (:) y a continuación las acciones para este caso, finalizando con la sentencia break;. Al llegar a esta estructura en la ejecución de un programa, se evalúa la expresión numérica y se compara con cada valor introducido con case en el orden en que aparecen en el código hasta encontrar una coincidencia. Cuando se encuentra una coincidencia, se ejecutan todas las acciones que se encuentran a continuación hasta encontrar un break o finalizar la estructura condicional. Esto quiere decir que si en las acciones asociadas a un caso particular no se incluye el break; al final, al entrar en ese caso se ejecutan las acciones luego del mismo, y se continúa ejecutando las acciones de el/los casos siguientes hasta encontrar un break. La utilidad de esto radica en poder definir un mismo grupo de acciones para más de un caso. Además, se puede incluir el caso especial default (introduciendo simplemente la palabra default seguida de dos puntos) al final de la estructura, con acciones a ejecutar cuando ninguno de los casos anteriores coincide con el valor de la expresión.


Ejemplo:

    switch (num) {
    case 1:
       cout<<"Selección: 1"<<endl;
       break;
    case 2: case 3: case 4;
       cout<<"Selección: 2, 3 o 4"<<endl;
       break;
    case 5:
       cout<<"Selección: 5"<<endl;
       break;
    default:
       cout<<"Selección: mayor a 5"<<endl
    };