4.11. Comando if-elif-else

Para simplificar ainda mais o código de programas com if-else aninhados, o Python oferece o comando if-elif-else, cuja sintaxe é a seguinte.

if condição:
    # bloco contendo comandos a serem executados
    dentro_do_if_1
    dentro_do_if_2
    ...
    dentro_do_if_p

elif condição elif1:
    dentro_do_elif1_1
    dentro_do_elif1_2
    ...
    dentro_do_elif1_m1

elif condição elif2:
    dentro_do_elif2_1
    dentro_do_elif2_2
    ...
    dentro_do_elif2_m2

# outros possíveis blocos de elif, cada um com a sua condição

elif condição elifk:
    dentro_do_elifk_1
    dentro_do_elifk_2
    ...
    dentro_do_elifk_mk

else:                   # o else é opcional
    dentro_do_else_1
    dentro_do_else_2
    ...
    dentro_do_else_q

comando_apos_if

Ou seja, o if-elif-else pode ter um ou mais blocos com elif, cada um com a sua condição específica. Cada bloco (condição) é testado um de cada vez, até que uma condição seja satisfeita e apenas os comandos dentro desse bloco são executados. Quando nenhuma condição é satisfeita, os comandos dentro do else são executados. Assim, não é necessário que haja um else no final.

A figura 4.4 ilustra mostra como a contração de else-if como efif (em pseudo-código estamos usando “senão-se”) pode tornar o código mais legível e portanto mais fácil de ler e entender. Como o Python desloca cada bloco de um tab, após vários tabs pode se tornar difícil ler o código que fica espremido no canto direito da página. O pseudo-código também ilustra esse benefício de formatação e simplificação da leitura do código ao comparar o uso de else (senão) seguido de if (se) e de elif (senão-se junto).

Figura 4.4: Exemplo de uso de if-elif-else para classificar um aluno

Figura 4.4: Fluxogramas e pseudo-código para classificar a situação de um aluno entre aprovado, reprovado e de recuperação usando a contração “senão-se” (elif).

Usando elif poderíamos escrever o algoritmo da figura 4.4 da seguinte forma:

O elif portanto é apenas uma contração do else if que torna mais claro o tratamento das várias alternativas, encadeando as condições. Blocos de elif podem ser repetidos várias vezes. Suponha por exemplo que gostaríamos de conhecer os alunos aprovados com louvor, ou seja, com nota superior a 9.0. Nesse caso, uma outra solução seria:

Faça os seus próprios experimentos com o trecho de código a seguir.

Você já fez das atividades dessa página