Pular para o conteúdo principal

Aula 04: Estruturas de Decisão (IF/ELSE/Match)

Objetivos de Aprendizagem​

Ao final desta aula, você deve ser capaz de:

  1. Explicar a diferença entre if, if/else e if/elif/else.
  2. Escrever condições usando operadores relacionais e lógicos (and, or, not).
  3. Resolver problemas simples de decisão com entradas do usuário.
  4. Identificar quando usar match/case e quando usar if/elif.
  5. Testar um programa e validar se a saída corresponde às regras definidas.

Conteúdo​

Ambiente sugerido e limites desta aula​

  • Ambiente sugerido: Python 3.10 ou superior.
  • Importante: match/case está disponível a partir do Python 3.10.
  • Escopo desta aula: foco em estruturas de decisão. Estruturas de repetição (for, while) ficam para aulas seguintes.

1) Decisão simples com if​

Use if quando você quer executar um bloco somente se uma condição for verdadeira.

Uma condição é uma expressão que resulta em True (verdadeiro) ou False (falso).

idade = 19

if idade >= 18:
print("Maior de idade")

Leitura da regra: se idade >= 18, então imprime a mensagem.

2) Duas alternativas com if/else​

Use else quando existir um caminho alternativo para quando a condição do if for falsa.

nota = 5.5

if nota >= 6.0:
print("Aprovado")
else:
print("Reprovado")

3) Múltiplos caminhos com if/elif/else​

Use elif quando há várias faixas possíveis.

media = 7.2

if media >= 9:
conceito = "A"
elif media >= 8:
conceito = "B"
elif media >= 7:
conceito = "C"
elif media >= 6:
conceito = "D"
else:
conceito = "F"

print(f"Conceito: {conceito}")

4) Condições compostas​

Você pode combinar regras com operadores lógicos:

  • and: as duas condições devem ser verdadeiras
  • or: pelo menos uma condição deve ser verdadeira
  • not: inverte o valor lógico

Um operador relacional compara valores (>, <, >=, <=, ==, !=) e retorna True ou False. Um operador lógico combina condições (and, or, not).

idade = 20
tem_documento = True

if idade >= 18 and tem_documento:
print("Entrada permitida")
else:
print("Entrada negada")

Outro exemplo com or:

dia = "sábado"

if dia == "sábado" or dia == "domingo":
print("Fim de semana")
else:
print("Dia útil")

5) Seleção por padrão com match/case​

Quando você precisa decidir entre várias opções fixas, match/case pode deixar o código mais legível.

opcao = 2

match opcao:
case 1:
print("Cadastrar")
case 2:
print("Listar")
case 3:
print("Sair")
case _:
print("Opção inválida")

Compatibilidade: match/case x if/elif​

Se você estiver em Python antigo, o mesmo comportamento pode ser escrito com if/elif:

opcao = 2

if opcao == 1:
print("Cadastrar")
elif opcao == 2:
print("Listar")
elif opcao == 3:
print("Sair")
else:
print("Opção inválida")

6) Exemplos contextualizados​

Exemplo A: desconto por idade​

idade = 63
preco = 100.0

if idade >= 60:
preco_final = preco * 0.8
else:
preco_final = preco

print(f"Preço final: R$ {preco_final:.2f}")

Saída esperada: Preço final: R$ 80.00

Exemplo B: classificação por faixa​

temperatura = 31

if temperatura < 18:
print("Frio")
elif temperatura <= 28:
print("Agradável")
else:
print("Quente")

Saída esperada: Quente

Exemplo C: maior de dois números​

a = 42
b = 35

if a > b:
print(f"Maior valor: {a}")
elif b > a:
print(f"Maior valor: {b}")
else:
print("Valores iguais")

Saída esperada: Maior valor: 42

Exercícios (checkpoints)​

  1. Escreva um programa que leia uma idade e informe se a pessoa é maior de idade.
    • Critério de verificação: para entrada 18, a saída deve indicar maioridade.
  2. Escreva um programa que leia a nota final e exiba Aprovado (>= 6) ou Reprovado.
    • Critério de verificação: para entrada 5.9, deve mostrar Reprovado.
  3. Crie um classificador com if/elif/else para converter notas numéricas em conceitos (A, B, C, D, F).
    • Critério de verificação: para entrada 8.3, deve resultar em B.
  4. Faça um programa que permita entrada em evento apenas se a pessoa tiver idade >= 18 e documento.
    • Critério de verificação: para idade=20 e tem_documento=False, deve negar entrada.
  5. Implemente um menu com opções 1, 2, 3 usando match/case.
    • Critério de verificação: para opção 4, deve retornar Opção inválida.
  6. Reescreva o exercício anterior usando if/elif e compare legibilidade.
    • Critério de verificação: os dois programas devem produzir as mesmas saídas para as mesmas entradas.

Resumo da Aula​

Nesta aula você praticou:

  • Decisão simples com if.
  • Decisão binária com if/else.
  • Múltiplos caminhos com if/elif/else.
  • Combinação de condições com and, or e not.
  • Seleção por padrão com match/case (Python 3.10+).

Com isso, você já consegue modelar regras de negócio básicas e preparar programas interativos para as próximas aulas.

Referências​

Principais​

Aprofundamento​