Instrução Switch
Transfira o controle para um bloco de instrução diferente dentro do corpo do comutador, dependendo do valor de um seletor.
[Atributo] switch( Selector ) { case 0 : { StatementBlock; } break; case 1: { StatementBlock; } break; case n: { StatementBlock; } break; default: { StatementBlock; } break;
Parâmetros
-
Atributo
-
Um parâmetro opcional que controla como a instrução é compilada. Quando nenhum atributo é especificado, o compilador pode usar um comutador de hardware ou emitir uma série de instruções if .
Atributo Descrição mesclar Compile a instrução como uma série de instruções if , cada uma com o atributo flatten . branch Compile a instrução como uma série de instruções if cada uma com o atributo branch . Nota: Ao usar o Modelo de Sombreador 2.x ou o Modelo de Sombreador 3.0, cada vez que você usa a ramificação dinâmica, consome recursos. Portanto, se você usar a ramificação dinâmica excessivamente ao direcionar esses perfis, poderá receber erros de compilação. forcecase Forçar uma instrução switch no hardware. Nota: Requer hardware de nível de recurso 10_0 ou posterior. chamada Os corpos dos casos individuais no comutador serão movidos para sub-rotinas de hardware e o comutador será uma série de chamadas de sub-rotina. Nota: Requer hardware de nível de recurso 10_0 ou posterior. -
Seletor
-
Uma variável. As instruções case dentro dos colchetes curly marcar essa variável para ver se SwitchValue corresponde a seu CaseValue específico.
-
StatementBlock
-
Uma ou mais instruções.
Comentários
[branch] switch(a)
{
case 0:
return 0;
case 1:
return 1;
case 2:
return 3;
default:
return 6;
}
É equivalente a:
[branch] if( a == 2 )
return 3;
else if( a == 1 )
return 1;
else if( a == 0 )
return 0;
else
return 6;
Aqui estão exemplos de usos de atributos de controle de fluxo de chamadas e de 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 | Valor |
---|---|
parâmetro |
|