Tecnología

Inicio

Cómo crear una sentencia switch en C

Utilice la sentencia switch en C para evaluar un gran número de valores para una sola variable o expresión. El interruptor puede ser mucho más ordenado que una larga serie de declaraciones Else If.

Instrucciones

Crear una sentencia switch

1 Elija el valor que va a determinar una acción en su estado de cuenta final de carrera. Puede ser una única variable, el resultado de una llamada de función o cualquier expresión.

2 Coloque este valor o expresión después de la sentencia switch de esta manera:

switch (variable) {

3 Haga una lista de todos los valores que se desea capturar. Tenga en cuenta que es posible que varios valores que tienen la misma acción, pero no se puede utilizar rangos, sólo listas de valores. Por ejemplo, no se puede tener un caso hasta valores de 301 a 400, a menos que se desea listar todos los 100 valores uno por uno!

4 Sé que es muy común que los valores sean constantes definidas con la instrucción #define C precompilador.

5 Agregar una declaración de caso para cada valor en el siguiente formato:

valor del caso:

6 Siga cada instrucción case con una o más acciones. A diferencia de la mayoría de las estructuras de C, que no necesita llaves para varias instrucciones.

7 La conclusión de cada conjunto de comandos con una sentencia break antes de comenzar el siguiente caso. Si no lo hace, la ejecución se "caen a través de" en el siguiente caso, que es prácticamente nunca es deseable. Está bien dejar de lado el descanso si otra cosa (como una instrucción de retorno) asegura que nunca se "caen a través."

8 Crear un caso por defecto especial para coger cualquier cosa, y no incluya un caso anterior. Es sólo por defecto, no por defecto caso.

9 Concluir el bloque con un}, como en este ejemplo completo:

interruptor (evaluate_color (rojo, verde, azul)) {
Rojo del caso:
printf ( "Una puesta del sol brillante de color rojo llena el cielo. \ n");
x = 11;
descanso;
caso AMARILLO:
printf ( "El sol cae sin piedad. \ n");
x = 14;
descanso;
Caja verde:
x = 10;
evaluate_green ();
descanso;
Caja azul:
printf ( "Felicidades, usted gana! \ n");
regreso;
defecto:
printf ( "no sucede nada especial. \ n");
descanso;
}

Consejos y advertencias

  • Interruptor sólo funcionará si todas las comparaciones están en contra de una sola variable o expresión. De lo contrario, crear una instrucción Else Si con múltiples Else Ifs.
  • El uso de "caer a través de" generalmente se considera una mala técnica y debe evitarse a menos que esté absolutamente seguro de que su código será a la vez correcto y legible.