2.12. Estruturas Condicionais
As estruturas condicionais ou comandos condicionais permitem alterar a sequência de execução de um programa dependendo do resultado de uma expressão lógica (Figura 2.12).
Em Python, usamos as palavras reservadas if
, else
e elif
para estruturar blocos de comandos (ou instruções) que organizam o fluxo de nossos programas.
Nota
Muitas vezes chamamos o comando if
de cláusula if
.
2.12.1. Estrutura Condicional Simples
Podemos estruturar um bloco utilizando um único comando if
, como mostrado no Trecho de Código 2.7. Neste exemplo, o comando da linha 04 somente será executado se um valor de NDVI maior que 0.3 e menor que 0.8 for lido na linha 01. O teste condicional associado ao comando if
, na linha 03, tem o papel de verificar se a expressão é verdadeira ou falsa. No caso de ela ser verdadeira, o fluxo do programa, na linha 03, é desviado para dentro do bloco de comandos definido pelo comando if
, que nesse caso contém apenas o comando da linha 04, e depois o fluxo continua sua execução a partir da primeira linha fora do comando if
(nesse caso a linha 06). Se a expessão condicional da linha 03 for avaliada como falsa, o fluxo é desviado diretamente para a linha 06, que é a primeira linha fora da estrutura do comando if
. A Figura 2.13 ilustra o fluxo de execução desse programa.
1ndvi = float(input("NDVI: "))
2
3if (ndvi > 0.3) and (ndvi < 0.8):
4 print("vegetação densa!")
5
6print("NDVI:", ndvi)
Nota
Atente-se para a indentação das instruções dentro do bloco if
e o término da linha com o caracter :
.
2.12.2. Estrutura Condicional Composta
Neste caso, além da sequência de comandos a ser executada caso a expressão lógica seja avaliada como verdadeira, temos também um conjunto de instruções que pode ser executado caso ela seja avaliada como falsa. O Trecho de Código 2.8 inclui a palavra-chave else
, definindo um bloco de comandos que será executado caso a expressão lógica da linha 03 seja avaliada como falsa. A Figura 2.14 ilustra o fluxo de execução desse programa.
1ndvi = float(input("NDVI: "))
2
3if (ndvi > 0.3) and (ndvi < 0.8):
4 print("vegetação densa!")
5else:
6 print("pouca vegetação!")
7
8print("NDVI:", ndvi)
Nota
Atente-se para a indentação das instruções dentro dos blocos if
e else
, bem como o término dessas linhas com o caracter :
.
2.12.3. Comandos Condicionais Encadeados
Podemos utilizar a palavra-chave elif
para encadear uma estrutura condicional. O Trecho de Código 2.9 inclui a palavra-chave elif
para definir um novo teste condicional caso o teste da linha 03 seja falso. Caso os testes das linhas 03 e 05 sejam falsos, o bloco delimitado pela instrução else
será executado.
1ndvi = float(input("NDVI: "))
2
3if (ndvi < -1.0) or (ndvi > 1.0):
4 print("NDVI fora do intervalo!")
5elif (ndvi > 0.3) and (ndvi < 0.8):
6 print("vegetação densa!")
7else:
8 print("pouca vegetação!")
9
10print("NDVI:", ndvi)
Nota
As estruturas condicionais podem ser aninhadas, isto é, podem ser instruções dentro das cláusulas if
, else
e elif
.
Nota
A seção de código, ou bloco de comandos dentro das cláusulas if
, else
e elif
podem conter diversas instruções.
2.12.4. Exemplo
Problema: Escreva um programa que pergunte ao usuário o valor de um ano qualquer e que o informe se o ano é ou não bissexto.
Solução:
ano = int(input("Ano: "))
if ano % 400 == 0:
print("É bissexto!")
elif ano % 100 == 0:
print("Não é bissexto!")
elif ano % 4 == 0:
print("É bissexto!")
else:
print("Não é bissexto!")
print("Fim!")
Nota
Este problema foi introduzido na Seção 2.11.