Compartir a través de


switch (Instrucción)

Transfiera el control a otro bloque de instrucciones dentro del cuerpo del conmutador en función del valor de un selector.

[Attribute] switch( Selector ) { case 0 : { StatementBlock; } break; case 1 : { StatementBlock; } break; case n : { StatementBlock; } break; default : { StatementBlock; } break;

Parámetros

Atributo

Parámetro opcional que controla cómo se compila la instrucción. Cuando no se especifica ningún atributo, el compilador puede usar un conmutador de hardware o emitir una serie de instrucciones if .

Atributo Descripción
quitar información de estructura jerárquica Compile la instrucción como una serie de instrucciones if , cada una con el atributo flatten .
branch Compile la instrucción como una serie de instrucciones if cada una con el atributo branch . Nota: Cuando se usa el modelo de sombreador 2.x o el modelo de sombreador 3.0, cada vez que se usa la bifurcación dinámica, se consumen recursos. Por lo tanto, si usa la bifurcación dinámica excesivamente al dirigirse a estos perfiles, puede recibir errores de compilación.
forcecase Forzar una instrucción switch en el hardware. Nota: Requiere el nivel de característica 10_0 o hardware posterior.
llamada Los cuerpos de los casos individuales del conmutador se moverán a subrutinas de hardware y el conmutador será una serie de llamadas subrutinas. Nota: Requiere el nivel de característica 10_0 o hardware posterior.

Selector

Variable. Cada una de las instrucciones case dentro de los corchetes comprobará esta variable para ver si SwitchValue coincide con su CaseValue determinado.

StatementBlock

Una o varias instrucciones.

Comentarios

[branch] switch(a)
{
    case 0:
        return 0; 
    case 1:
        return 1; 
    case 2:
        return 3; 
    default:
        return 6; 
}

Equivale a:

[branch] if( a == 2 )
    return 3;
else if( a == 1 )
    return 1;
else if( a == 0 )
    return 0;
else
    return 6;

Estos son ejemplos de usos de atributos de control de flujo de llamadas y forcecase:

[forcecase] switch(a)
{
    case 0:
        return 0; 
    case 1:
        return 1; 
    case 2:
        return 3; 
    default:
        return 6; 
}

[call] switch(a)
{
    case 0:
        return 0; 
    case 1:
        return 1; 
    case 2:
        return 3; 
    default:
        return 6; 
}

Requisitos

Requisito Value
Encabezado
Urlmon.h

Consulte también

Control de flujo