A Simplicidade do if-elseif

por Fabio A. Mazzarino

Mais um caso que didaticamente faz muito sentido, mas a realidade é um pouco diferente. Como a maioria reagiria à afirmação de que não existe a estrutura if-elseif na linguagem C? Pois não existe mesmo e é fácil de comprovar.

Esclarecendo

Na verdade o que existe não é uma estrutura de controle de fluxo, mas sim uma construção que funcionqa da mesma forma. É mais uma forma de formatar o código, normalmente o if-elseif é ensinado da seguinte forma:

if (x > 5) {
    printf("X maior que 5\n");
} else if (x < 5) { 
    printf("X menor que 5\n");
} else {
    printf("X igual a 5\n");
}

Que também pode ser formatado desta forma:

if (x > 5) {
    printf("X maior que 5\n");
} else {
    if (x < 5) {
        printf("X menor que 5\n");
    } else {
        printf("X igual a 5\n");
    }
}

Ou seja, na verdade não existe o comando elseif, e sim uma construção que funciona como se fosse o comando utilizado em diversas outras linguagens.

Profissionalmente

Profissionalmente o mais indicado é utilizar a construção tal qual é ensinada, mas de forma consciente. A construção elseif do C torna o código muito mais legível ao agregar diversos ifs aninhados como se fosse uma única estrutura de controle de fluxo, aumentando a visibilidade e facilitando a manutenção.

Aninhar ifs de forma desnecessária somente gera dificuldade na interpretação do código, dificultando sua manutenção e aumentando o custo geral do time de desenvolvimento.