Módulo 4 - Matrizes: tabelas, grades e tabuleiros
Percorrer a matriz com laços aninhados
8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 08/07/2026
O que você vai aprender
- Percorrer todas as células de uma matriz com dois laços aninhados.
- Associar o laço externo às linhas e o interno às colunas.
- Somar, contar e achar o maior valor varrendo a matriz inteira.
- Prever a ordem em que as células são visitadas.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Percorrer a matriz com laços aninhados.
Os objetivos desta aula. Percorrer todas as células de uma matriz com dois laços aninhados. Associar o laço externo às linhas e o interno às colunas. Somar, contar e achar o maior valor varrendo a matriz inteira. Prever a ordem em que as células são visitadas.
Veja o essencial, parte por parte.
Dois laços para uma tabela. Percorrer uma matriz inteira pede dois laços aninhados.
Somar, contar e achar o maior. Com o padrão da varredura montado, qualquer pergunta sobre a matriz inteira vira uma variação do mesmo esqueleto.
Cuidado com os limites de cada dimensão. Laço externo: vai até o número de LINHAS (menos um, contando do zero).
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
Dois laços para uma tabela
No módulo passado você viu que dois laços aninhados varrem uma grade: o de fora conta as linhas, o de dentro conta as colunas. A matriz é justamente essa grade cheia de dados, então percorrê-la é a aplicação mais natural do aninhamento. A cada volta do laço externo, você fixa uma linha; o laço interno então percorre todas as colunas daquela linha, visitando cada célula. Quando o interno termina, o externo avança para a próxima linha e o interno recomeça. O resultado é uma varredura completa, casa por casa, na mesma ordem em que você leria uma página: da esquerda para a direita, de cima para baixo.
matriz <- [
[3, 1, 4],
[1, 5, 9],
[2, 6, 5]
]
soma <- 0
para linha de 0 até 2 faça
para coluna de 0 até 2 faça
soma <- soma + matriz[linha][coluna]
fim
fim
escreva("Soma de tudo: ", soma) // 3+1+4+1+5+9+2+6+5 = 36O laço externo fixa a linha; o interno soma cada coluna dela. Ao fim, soma tem o total das 9 células.
Somar, contar e achar o maior
Com o padrão da varredura montado, qualquer pergunta sobre a matriz inteira vira uma variação do mesmo esqueleto. Quer a soma de tudo? Um acumulador que cresce a cada célula, como no exemplo. Quer contar quantas células valem zero? Um contador que ganha mais um sempre que a célula da vez é zero. Quer o maior valor da tabela? Uma variável maior que começa pequena e é atualizada sempre que uma célula a supera, exatamente a técnica que você usou com listas, agora dentro do laço duplo. O que muda de um problema para outro não é a estrutura dos laços, é só o que você faz com a célula da vez.
🎮 Jogo da aula
Quantas células passam no teste?
Este laço duplo conta quantos valores da matriz são maiores que 4. Varra a grade e escolha o total.
matriz <- [
[3, 7, 1],
[8, 2, 5]
]
quantos <- 0
para linha de 0 até 1 faça
para coluna de 0 até 2 faça
se matriz[linha][coluna] > 4 então
quantos <- quantos + 1
fim
fim
fim
escreva(quantos)Cuidado com os limites de cada dimensão
Um detalhe que derruba iniciante: os dois laços têm limites diferentes, e confundi-los estoura a matriz. O laço externo vai até o número de LINHAS menos um; o interno, até o número de COLUNAS menos um. Numa matriz 2 por 3 (duas linhas, três colunas), o externo vai de 0 a 1 e o interno de 0 a 2. Usar o mesmo limite nos dois, comum quando se copia e cola o laço, faz o programa pedir uma célula que não existe (a linha 2 numa matriz de duas linhas) e quebrar, ou pior, pular colunas. Antes de escrever a varredura, pare e responda: quantas linhas? quantas colunas? Esses dois números comandam os dois laços.
Teste rápido
Numa varredura de matriz com dois laços aninhados, o que o laço EXTERNO controla e o que o INTERNO controla?
Perguntas frequentes
- Por que preciso de dois laços para percorrer a matriz?
- Porque a matriz tem duas dimensões. Um laço só percorre uma fila; para visitar linhas E colunas você precisa de um laço para cada dimensão. O externo escolhe a linha, o interno percorre as colunas dela. É a aplicação direta dos laços aninhados que você viu no módulo anterior.
- Qual laço fica por fora, o das linhas ou o das colunas?
- Por convenção, o das linhas fica por fora e o das colunas por dentro, seguindo a ordem linha-coluna dos índices e a leitura natural de cima para baixo. Você pode inverter (percorrer coluna por coluna), mas mudaria a ordem de visita das células. Para a maioria dos casos, linha por fora é o padrão.
- Como somo só uma linha, em vez da matriz toda?
- Aí basta um laço simples: fixe a linha e percorra só as colunas dela com um único laço, somando matriz[linha][coluna]. Você vê exatamente isso na última aula deste módulo, sobre operações por linha, coluna e diagonal. A varredura dupla é para quando você precisa da tabela inteira.
- O custo dos laços aninhados vale o alerta aqui também?
- Vale. Uma matriz de N linhas por N colunas tem N ao quadrado células, então a varredura completa faz N ao quadrado passos. Para tabelas pequenas e médias é irrelevante; para grades muito grandes (imagens de milhões de pixels), o custo importa e se estuda a fundo no módulo de eficiência.
- Posso usar continuar e interromper dentro da varredura?
- Pode, com atenção. O continuar pula uma célula e segue; o interromper sai do laço em que está, normalmente o interno, então o externo continua na próxima linha. Sair da varredura inteira de uma vez exige uma variável de controle ou reestruturar, como visto na aula de laços aninhados.
- Como descubro quantas linhas e colunas a matriz tem?
- O número de linhas é o tamanho da lista externa (quantas listas internas existem). O número de colunas é o tamanho de uma linha (quantos itens uma lista interna tem). As linguagens têm funções para medir o tamanho de uma lista; no pseudocódigo, pense em quantidade de linhas e quantidade de colunas.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.