Qual é a diferença entre a instrução switch e a opção aninhada?

Em uma instrução switch, as variáveis ​​são testadas em uma lista de valores (Case:) para igualdade.

Por exemplo:

interruptor (n)

{

caso 1: // código a ser executado se n = 1;

pausa;

caso 2: // código a ser executado se n = 2;

pausa;

default: // código a ser executado se n não corresponder a nenhum caso

pausa;

}

Em uma instrução de switch aninhada, é possível usar um switch dentro de outro switch.

Por exemplo:

interruptor (n)

{

caso 1: // a ser executado se n = 1;

// Switch aninhado

interruptor (num)

{

case 10: // código a ser executado se num = 10;

pausa;

case 20: // código a ser executado se num = 20;

pausa;

case 30: // código a ser executado se num = 30;

pausa;

default: // código a ser executado se num não corresponder

pausa;

}

pausa;

caso 2: // código a ser executado se n = 2;

pausa;

default: // código a ser executado se n não corresponder a nenhum caso

pausa;

}

Você pode usar uma opção como parte da sequência de instruções de uma opção externa. Isso é chamado de switch aninhado. Como uma instrução switch define seu próprio bloco, não surgem conflitos entre as constantes de maiúsculas e minúsculas no comutador interno e as constantes no comutador externo. Por exemplo, o seguinte fragmento é perfeitamente válido:

Aqui, a instrução case 1: no switch interno não entra em conflito com a instrução case 1: no switch externo. A variável count é comparada apenas com a lista de casos no nível externo. Se contagem for 1, o destino será comparado com os casos de lista internos.