Aula 9: Laços Aninhados

Dominando a complexidade com repetições dentro de repetições.

O Que Você Vai Aprender

Nesta aula de 2 horas, você dará um grande salto na complexidade e poder dos seus programas: laços aninhados. Aprenderá a usar um laço dentro de outro, como visualizar o fluxo de execução e aplicará esse conceito para resolver problemas que envolvem estruturas bidimensionais, como tabelas e padrões.

nested_loop_icon Compreender Aninhamento

Entender como um laço interno é executado completamente para cada iteração do laço externo.

📊 Visualizar Fluxo de Execução

Acompanhar o passo a passo da execução em laços aninhados.

🧩 Resolver Problemas Complexos

Aplicar laços aninhados para lidar com estruturas de dados bidimensionais e padrões visuais.

Conceito de Aninhamento: Laços dentro de Laços

Laços aninhados significam ter um laço dentro de outro laço. Para cada 'volta' do laço externo, o laço interno é executado do início ao fim. Isso é como ter as horas do dia (laço externo) e, para cada hora, os minutos de 0 a 59 (laço interno).

Exemplo Básico (Combinações)

for i in range(1, 4): # Laço externo
    print(f"Iteração externa: {i}")
    for j in ['a', 'b']: # Laço interno
        print(f"  Iteração interna: {j}")

Simulador de Laços Aninhados

Defina o número de iterações para o laço externo e interno, e veja o fluxo de execução.

Aplicações Práticas: Onde Usar Laços Aninhados

Laços aninhados são incrivelmente versáteis para tarefas que envolvem múltiplos níveis de repetição. Eles são ideais para:

Imprimir Tabuadas Completas

Gerar a tabuada de todos os números (ex: de 1 a 10), onde o laço externo controla o número e o interno os multiplicadores.

for num in range(1, 11):
    print(f"\nTabuada do {num}:")
    for i in range(1, 11):
        print(f"{num} x {i} = {num * i}")

Gerador de Tabuadas (1 a 10)

Desenhar Padrões e Formas

Criar formas geométricas ou padrões de caracteres no console, onde o laço externo controla as linhas e o interno os caracteres de cada linha.

largura = 10
altura = 5
for _ in range(altura):
    for _ in range(largura):
        print("*", end="") # end="" evita a quebra de linha
    print() # Quebra a linha ao final de cada linha de asteriscos

Desenhar Retângulo

Desafios para Continuar

Agora que você desvendou os laços aninhados, é hora de praticar! Resolva estes desafios no seu ambiente de desenvolvimento Python para solidificar seu aprendizado e se preparar para problemas mais complexos.

  • Tabuada Completa (1 a 10)

    Crie um programa que imprima a tabuada de todos os números de 1 a 10, formatando a saída de forma legível (como no exemplo do conteúdo).

  • Desenhar um Triângulo Retângulo de Asteriscos

    Crie um programa que peça um número ao usuário (altura do triângulo) e, usando laços aninhados, desenhe um triângulo retângulo de asteriscos como o exemplo abaixo:

    *
    **
    ***
    ****
    (Para uma altura de 4)