La sentencia switch le permite controlar el flujo en c ++

Un programa a veces tiene que elegir una opción de un gran número de posibles entradas legales. C ++ proporciona un mecanismo de control conveniente para seleccionar entre múltiples opciones: la cambiar declaración. los cambiar declaración tiene el siguiente formato:

switch (expresión) {case const1: // ir aquí si la expresión == const1break caso const2: // ir aquí si la expresión == const2break caso const3: // repetir tantas veces como desee // ir aquí si la expresión == const3break-default: // ir aquí si ninguno de los otros casos coincide}

Al encontrarse con el cambiar declaración, C ++ evalúa expresión. A continuación, pasa el control a la caja con el mismo valor que expresión. Control continúa desde allí a la descanso declaración, que transfiere el control a la } al final de cambiar declaración. Si ninguno de los casos coincide, el control pasa al caso por defecto.

El caso por defecto es opcional. Si la expresión no coincide con ningún caso y ningún caso se proporciona por defecto, el control pasa inmediatamente al }.

Considere el siguiente fragmento de código de ejemplo:

int nMonth-cout lt; lt; "Introduzca el número del mes: "-cin gt; gt; nMonth-interruptor (nMonth) {case 1: cout lt; lt; "Es enero" lt; lt; endl-break-caso 2: cout lt; lt; "Que estamos en febrero" lt; lt; endl - break-caso 3: cout lt; lt; "Es de marzo"lt; lt; endl - break-caso 4: cout lt; lt; "Es de APRIL"lt; lt; endl - ruptura caso 5: cout lt; lt; "Es mayo" lt; lt; endl - break-caso 6: cout lt; lt; "Estamos en junio" lt; lt; endl - ruptura caso 7: cout lt; lt; "Estamos en julio" lt; lt; endl - ruptura caso 8: cout lt; lt; "Es agosto" lt; lt; endl - ruptura caso 9: cout lt; lt; "Es en septiembre"lt; lt; endl - ruptura de los casos 10: cout lt; lt; "Estamos en octubre" lt; lt; endl - ruptura de los casos 11: cout lt; lt; "Que estamos en noviembre" lt; lt; endl - ruptura de los casos 12: cout lt; lt; "Es diciembre" lt; lt; endl - romper-default: cout lt; lt; "Eso no es un mes válido" lt; lt; endl--}

Se obtiene el siguiente resultado del programa cuando se introduce un valor de 3:

Introduzca el número del mes: 3Es MarchPress Intro para continuar. . .

La figura muestra cómo el control fluía a través de la cambiar declaración para generar el resultado anterior de marzo.

UN cambiar afirmación no es como una serie de Si declaraciones. Por ejemplo, sólo los números enteros o caracteres constantes están permitidos después de la caso palabra (es decir expresiones que se pueden evaluar por completo en tiempo de compilación). No se puede suministrar una expresión tiempo de ejecución después de una caso. Por lo tanto, lo siguiente no es legal:

// casos no se pueden Expresiones del la // siguiente no es legal para m declarado como un intswitch (n) {case m: cout lt; lt; "n es igual a m" lt; lt; endl-break-caso 2 * m: cout lt; lt; "n es igual a 2 m" lt; lt; endl-break-caso 3 * m: cout lt; lt; "n es igual a 3 m" lt; lt; endl-}

Cada uno de los casos debe tener un valor en tiempo de compilación. El valor de metro No se sabe hasta que el programa se ejecuta.

En realidad, el estándar C ++ 2011 introduce un tipo de expresión constante que puede ser utilizado como blanco de una declaración de caso.

Artículos Relacionados