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