Declaración de cambio de C ++
UNA switchLa declaración permite probar la igualdad de una variable con una lista de valores. Cada valor se denomina caso y la variable que se activa se verifica para cada caso.
Sintaxis
La sintaxis de un switch declaración en C ++ es la siguiente:
switch(expression) {
case constant-expression :
statement(s);
break; //optional
case constant-expression :
statement(s);
break; //optional
// you can have any number of case statements.
default : //Optional
statement(s);
}
Las siguientes reglas se aplican a una declaración de cambio:
los expression usado en un switch La declaración debe tener un tipo integral o enumerado, o ser de un tipo de clase en el que la clase tenga una única función de conversión a un tipo integral o enumerado.
Puede tener cualquier número de declaraciones de casos dentro de un conmutador. Cada caso va seguido del valor que se va a comparar y dos puntos.
los constant-expression para un caso debe ser del mismo tipo de datos que la variable en el conmutador, y debe ser una constante o un literal.
Cuando la variable que se enciende es igual a un caso, las declaraciones que siguen a ese caso se ejecutarán hasta que break se alcanza la declaración.
Cuando se alcanza una declaración de interrupción, el cambio termina y el flujo de control salta a la siguiente línea que sigue a la declaración de cambio.
No todos los casos deben contener un descanso. Si no aparece ninguna rotura, el flujo de control va a caer a través de casos posteriores hasta que se alcanza un descanso.
UNA switch declaración puede tener un opcional defaultcaso, que debe aparecer al final del interruptor. El caso predeterminado se puede utilizar para realizar una tarea cuando ninguno de los casos es verdadero. No se necesita descanso en el caso predeterminado.
Diagrama de flujo
Ejemplo
#include <iostream>
using namespace std;
int main () {
// local variable declaration:
char grade = 'D';
switch(grade) {
case 'A' :
cout << "Excellent!" << endl;
break;
case 'B' :
case 'C' :
cout << "Well done" << endl;
break;
case 'D' :
cout << "You passed" << endl;
break;
case 'F' :
cout << "Better try again" << endl;
break;
default :
cout << "Invalid grade" << endl;
}
cout << "Your grade is " << grade << endl;
return 0;
}
Esto produciría el siguiente resultado:
You passed
Your grade is D