Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

condcional encadeada realmente é menos performatica que condional simples?

Fazer o encadeamento de condições desta forma:

if(condicao){}
elseif(condicao){}
else{}

Ao invés de fazer :

if(condicao)
    return;
if(condicao)
    return;
if(condicao)
    return;

é menos performático? Por que?

3 respostas

Fala Pablo, blz?

Dentro de uma estrutura de if e elseif e else o interpretador de código irá executar cada condição até encontrar uma que a satisfaça. Caso o primeiro if seja executado, o interpretador não irá efetuar a comparação no elseif e nem a execução do else. Logo, haveria menos processamento nesse caso.

No caso de uma estrutura com apenas if, todas as comparações serão executadas, mesmo que o primeiro if já satisfaça a condição.

No vídeo que eu vi, sobre classes PHP o instrutor recomendou um artigo, no qual fala que

If(condição){
Return;
}

É mais perfomatico, que usar encadeamento e eu não consigo entender como isso seria possível, eu não entendo muito de compiladores mas creio que nem a nível de compilação isso se traduza em uma maior performance.

Mas pelo que você disse, um if encadeado é igualmente, se não mais performatico

solução!

Bom, tem um detalhe que eu nao me atentei, esse return dentro dos ifs pode ter um efeito igual do if encadeado com else, pois se caso cair em um if ele pararia a execução da mesma forma.

Mas no geral, eu acho que depende muito da situação. Na maioria dos casos dá para resolver as coisas só com um if:

if (condição) { return true; } return false;

Nesse caso acima, conseguimos escrever uma condição dupla sem elseif e else com o processamento apenas de um if.

Mas há casos que é melhor usar elseif, eu acho que é muito genérico, vai depender muito do que vc precisa na hora. É sempre bom saber usar as duas coisas no final das contas.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software