logo3.gif (8200 bytes)

Arriba ] if, if-else ] for ] while ] do ] [ switch ]

Por Alberto Valero para la Web del Programador

SWITCH

La sentencia switch permite evaluar una expresión y tomar diversas acciones en función del resultado de la expresión, su sintaxis es como sigue:

switch (expresión entera)
{
    case constante_1:
        sentencia_11;
        sentencia_12;
        ...
        sentencia_1n;
        break;
    case constante_2:
        sentencia_21;
        sentencia_22;
        ...
        sentencia_2n;
        break;
    ...
    case constante_n:
        sentencia n1;
        sentencia n2;
        ...
        sentencia nn;
        break;
    default:                //se ejecuta en caso de que no se hayan cumplido ninguna de las anteriores
        sentencias
}

Las siguientes reglas se aplican en el uso de la sentencia switch:

"expresión entera", puede ser una constante, una variable, una llamada a función o una expresión. La sentencia switch no funciona con datos en coma flotante.

El valor después de cada etiqueta case debe ser una constante entera o carácter como 3 o 'b', o bien una expresión que se evalúe a una constante como 'a'+32

C++ no soporta etiquetar casa con rangos de valores; en su lugar, cada valor debe aparecer en una etiqueta independiente case.

Necesita utilizar la sentencia break después de cada  conjunto de sentencias ejecutables. La sentencia break hace que la ejecución del programa se reanude después del final de la sentencia switch actual. Si no se utiliza la sentencia break, la ejecución del programa se reanuda en las siguientes etiquetas case.

Si ninguno de los valores coincide en el valor de "expresión entera" se ejecutarán las sentencias que vienen a continuación de la sentencia opcional default.

Ejemplo

void main (void)
{
    char test;
    int x = 3, y = 5, z;
    cin >> test;
    switch (test) {
        case '+':
            z = x + y;
            break;
        case '-':
            z = x - y;
            break;
        default:
            z = 0;
}

 

Anterior

Este curso esta albergado en La Web del Programador