Alternar e, caso contrário, comparação

if-else
está simplesmente comparando um por um, se ... else é calculado para cada condição;

O comutador
usa o algoritmo Binary Tree; na maioria dos casos, o comutador será mais rápido, a menos que a primeira condição de if-else seja verdadeira.A compilação do comutador é diferente de compilar se ... else ... Não importa quantos casos existam, pule diretamente, não é necessário comparar as consultas uma a uma; a opção só calcula o valor uma vez e, em seguida, todos os testes, jmp,

Quando houver muitos outros, é mais claro usar o caso de chave. A maneira como o comutador usa a tabela de pesquisa determina que a condição do caso deve ser uma constante contínua. O if-else pode ser muito mais flexível. Para a instrução switch, a estrutura da ramificação é realmente implementada usando uma tabela de salto, e não há necessidade de comparar cada condição necessária de uma só vez. O número de comparações é 1. Mas para a instrução if ... else: o número mínimo de comparações é 1, em comparação com o switch, em termos de tempo, a velocidade de execução da instrução switch é mais rápida do que se houver, mas o espaço ocupado pela execução do programa Em termos de aspectos, a instrução switch precisa de uma tabela de salto para manter. Esse salto, a essência da tabela, é uma matriz com rótulos, requer espaço de armazenamento adicional, a eficiência de espaço da instrução if else é melhor. Switch é um exemplo muito típico de espaço para o tempo. No entanto, a opção só pode julgar os dados de um valor especificado, mas não pode julgar os dados em um intervalo. No momento, a declaração if ... else é uma boa escolha.


O problema de eficiência da caixa de chave e se mais

A diferença entre maiúsculas e minúsculas e se mais: caso maiúsculas e minúsculas gerará uma tabela de salto para indicar o endereço da ramificação do caso real, mas se ... else precisar percorrer a ramificação condicional até que ela atinja a condição.


Vantagens e desvantagens da caixa de mudança

(1) As vantagens da caixa do interruptor:

Quando existem muitos ramos, a eficiência do uso do switch é muito alta. Porque switch determina o valor selecionado e salta diretamente para esse ramo específico.

(2) Desvantagens da caixa do interruptor:

1.switch ... case ocupa mais espaço de código porque gera tabelas de salto, especialmente quando o intervalo de distribuição constante do case é grande, mas o valor efetivo real é relativamente pequeno, a utilização de espaço do switch ... case será Torna-se muito baixo.

2.switch ... case só pode lidar com o caso em que o caso é uma constante.


Vantagens e desvantagens de se mais

(1) As vantagens de if else: se else pode ser aplicado a mais locais, se else é mais flexível.

(2) Desvantagens de if else: se else deve atravessar todos os valores possíveis.

Resumo:
Na escolha de muitos ramos, interruptor de uso ... estrutura caso irá melhorar a eficiência do programa, mas a falta de lugares que só pode lidar com caracteres de switch ou variável numérica do modelo, se ... estrutura mais é mais
além de ser flexível, se ... estrutura mais pode ser usado Para determinar se a expressão é verdadeira, como se (a + b> c), se ... else tiver um intervalo de aplicativos mais amplo, alterne ... a estrutura de caso pode substituir a estrutura if ... else em alguns casos.

 

Acho que você gosta

Origin www.cnblogs.com/ranyonsue/p/12744066.html
Recomendado
Clasificación