Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo escribir un programa de conmutación en lenguaje C

Cómo escribir un programa de conmutación en lenguaje C

cambio, declaración de control de cambio, forma general: cambio? (expresión) {

caso? Expresión constante 1:?

caso? 2: ? Declaración 2;

...

caso? Expresión constante n: ? Declaración n;

Valor predeterminado: ? >

}

La semántica de esto es que después de calcular el valor de la expresión y compararlo con el valor de la expresión constante uno por uno, cuando el valor de la expresión se compara con el valor de la expresión constante Cuando los valores son iguales, se ejecuta la declaración, y luego no se realiza ningún juicio, y todas las situaciones posteriores a la declaración continúan ejecutándose. Si el valor de la expresión es diferente del valor de la expresión constante en todos los casos, se ejecuta después de la declaración de forma predeterminada. #include?lt;stdio.hgt;

int?main(void){

int?a;

printf("entrada?número entero: ?");

scanf("d",amp; a);

¿cambiar?(a){

caso?: printf("Lunes\ n");

caso?2: printf("Martes\n");

caso?3. printf("Miércoles\n");

caso?4: printf("Jueves\n");

caso?: printf("Viernes\n");

caso?6: printf("Sábado\n ");

Caso?7: printf("Lunes\n");

Caso?p>caso?7: printf("Domingo\n");

predeterminado: printf("error\n");

}

return?0;

}

Esto El programa requiere la entrada de un número y genera una palabra en inglés. Pero cuando se ingresa 3, el programa ejecutará case3 y todas las declaraciones posteriores, y generará miércoles y todas las palabras posteriores. Por supuesto, esto no es aconsejable. ¿Por qué sucede esto? Esto refleja una característica de la declaración de cambio. En la declaración de cambio, la "expresión constante de caso" solo es equivalente a un marcador de declaración. Cuando el valor de la expresión es igual a un determinado marcador, la ejecución se dirigirá al marcador en lugar de saltar automáticamente de toda la declaración de cambio. después de ejecutar la declaración del marcador, existe una situación en la que la declaración del caso se ejecuta después de continuar ejecutando todas las declaraciones del caso. Esto es completamente diferente de la declaración if descrita anteriormente y requiere atención especial.

Para evitar esta situación, el lenguaje C también proporciona una declaración de interrupción para saltar de la declaración de cambio. Esta declaración solo tiene la palabra clave break y no tiene parámetros. Más sobre esta afirmación más adelante. Modifique el programa en el ejemplo para agregar una declaración de interrupción después de cada declaración de caso para que la declaración de cambio se pueda omitir después de cada ejecución para evitar resultados no deseados.

#include?lt;stdio.hgt;

int?main(void){

int?a;

printf("entrada?número entero: ");

scanf("d",amp; a);

¿interruptor? p>

interruptor?(a){

caso?: printf("Lunes\n");; descanso;

caso?2: printf("Martes\n"); descanso;

caso?3: printf("Miércoles\n");;descanso;

caso?);?descanso;

caso?4: printf("Jueves/n");?descanso;

caso?5: printf("Viernes/n");?descanso;

caso?6: printf("Sábado/n");?descanso;

case?7: printf("Sunday/n");?;

}

Al utilizar la instrucción switch, también debes prestar atención a los siguientes puntos:

El valor de cada expresión constante después del caso debe ser diferente, de lo contrario se producirá un error.

Se permiten varias declaraciones después de un caso, y estas declaraciones pueden estar entre {}.

El orden de las cláusulas de caso y las cláusulas predeterminadas se pueden cambiar sin afectar los resultados de ejecución del programa.

La cláusula predeterminada se puede omitir.