Compartir a través de


instrucción switch (c)

switch y condicionales de control de la ayuda de las instrucciones de mayúsculas/minúsculas y de bifurcación operaciones complejas.Transfiere el control de la instrucción de switch a una instrucción dentro del cuerpo.

Sintaxis

  • selección-instrucción:
    instrucción de**)de laexpresión demodificador (**

  • etiquetar-instrucción:
    instrucción de : de laexpresión constante de mayúsculas/minúsculas

    instrucción devalor predeterminado:

El Control pasa a la instrucción cuyas coincidencias de la expresión constante de mayúsculas/minúsculasel valor*de la expresión ***)**de modificador (.La instrucción de switch puede incluir cualquier número de instancias de mayúsculas/minúsculas , pero ninguna constantes de dos casos dentro de la misma instrucción de switch pueden tener el mismo valor.La ejecución del cuerpo de instrucción comienza en la instrucción seleccionado y continúa hasta el final del cuerpo o hasta un control de transferencias de la instrucción de Inter body.

El uso de la instrucción de switch apariencia general siguiente:

switch ( expresión )

{

   declaraciones 

   .

   .

   .

   expresión constante**:demayúsculas/minúsculas** 

      instrucciones ejecutadas si la expresión es igual a 

      valor de esta expresión constante 

      .

      .

      .

      interrupción; 

   valor predeterminado:

      instrucciones ejecutadas si la expresión no es igual a 

      cualquier expresión constante de casos 

}

Puede utilizar la instrucción de Inter para finalizar el procesamiento de un caso concreto dentro de la instrucción de switch y para crear al final de la instrucción de switch .Sin Inter, el programa continúa el caso siguiente, ejecutar instrucciones hasta Inter o el final de la instrucción se alcance.en algunas situaciones, esta continuación puede ser deseable.

Se ejecuta la instrucción de predeterminado si no hay ningunaexpresión constante de mayúsculas/minúsculasigual al valorde la expresión**)**de modificador (.Si se omite la instrucción de predeterminado , y no se encuentra ninguna coincidencia de mayúsculas/minúsculas , no se ejecuta ninguna de las instrucciones del cuerpo de switch .puede haber a lo sumo una instrucción de predeterminado .La instrucción de predeterminado no necesita alcanzado en el fin; puede aparecer en cualquier parte del cuerpo de la instrucción de switch .Una etiqueta de mayúsculas/minúsculas o de predeterminado sólo puede aparecer en una instrucción de switch .

El tipode expresión * de switchyde expresión constante * de mayúsculas/minúsculasdebe ser integer.El valor de cada*expresión constante * de mayúsculas/minúsculasdebe ser único dentro del cuerpo de instrucción.

Las etiquetas de mayúsculas/minúsculas y de predeterminado body de instrucción de switch tienen sentido sólo en la prueba inicial que determina dónde la ejecución se inicia en el cuerpo de instrucción.Las instrucciones switch pueden anidarse.Cualquier variable estática inicializa antes de ejecutarse en cualquier switch instrucciones.

[!NOTA]

Las declaraciones pueden aparecer en el encabezado de la instrucción compuesta que crea el cuerpo de switch , pero las inicializaciones incluidas en las declaraciones no se realizan.Transfiere el control de la instrucción de switch directamente a una instrucción ejecutable dentro del cuerpo, omitiendo las líneas que contienen inicializaciones.

los ejemplos siguientes muestran las instrucciones de switch :

switch( c ) 
{
    case 'A':
        capa++;
    case 'a':
        lettera++;
    default :
        total++;
}

Las tres instrucciones del cuerpo de switch en este ejemplo se ejecutan si c es igual a 'A' como una instrucción de Inter no aparece antes del caso siguiente.El control de la ejecución se transfiere a la primera instrucción (capa++;) y continúa en orden con el resto del cuerpo.si c es igual a 'a', se incrementan lettera y total .Sólo se incrementa total si c no es igual a 'A' o a 'a'.

switch( i ) 
{
    case -1:
        n++;
        break;
    case 0 :
        z++;
        break;
    case 1 :
        p++;
        break;
}

En este ejemplo, una instrucción de Inter sigue cada instrucción de cuerpo de switch .La instrucción de Inter fuerza a una salida de cuerpo de instrucción tras ejecutar una instrucción.si i es igual a – 1, sólo se incrementa n .Inter detrás del control de la ejecución de las causas de n++; de la instrucción al paso de cuerpo de instrucción, omitiendo las instrucciones restantes.De igual forma, si i es igual a 0, sólo se incrementa z ; si i es igual a 1, sólo se incrementa p .La instrucción de Inter end no es estrictamente necesaria, puesto que el control pasa del cuerpo al final de la instrucción compuesta, pero está incluido para la coherencia.

Una sola instrucción puede contener las etiquetas varias de mayúsculas/minúsculas , como se muestra en el ejemplo siguiente:

case 'a' :
case 'b' :
case 'c' :
case 'd' :
case 'e' :
case 'f' :  hexcvt(c);

En este ejemplo, si la expresión constante es cualquier letra entre 'a' y 'f', se llama a la función de hexcvt .

Específicos de Microsoft

Microsoft c no limita el número de valores de caso en una instrucción de switch .El número está limitado por la memoria disponible.ANSI C requiere al menos 257 etiquetas del caso se permite en una instrucción de switch .

El valor predeterminado para Microsoft c es que las extensiones de Microsoft están habilitadas.Utilice la opción de compilador /Za para deshabilitar estas extensiones.

Específico de Microsoft de FINAL

Vea también

Referencia

instrucción switch (C++)