Loops Aninhados
Parte da seção Fundamentals do Journey de C da Coddy — lição 43 de 63.
Loops aninhados são loops colocados dentro de outro loop. Para cada iteração do loop externo, o loop interno é executado completamente.
Crie um loop externo que execute 3 vezes:
for (int i = 0; i < 3; i++) {
// Código do loop externo aqui
}Adicione um loop interno que execute 2 vezes para cada iteração do loop externo:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d,%d ", i, j);
}
printf("\n");
}A saída será:
0,0 0,1 0,2
1,0 1,1 1,2 Observe como o loop interno completa suas iterações antes que o loop externo passe para sua próxima iteração.
Desafio
FácilCrie um programa que imprima um padrão retangular de asteriscos (*) com base no número de linhas e colunas fornecido pelo usuário.
Seu programa deve:
- Ler dois números inteiros do usuário: rows e columns.
- Usar loops aninhados para imprimir um padrão retangular de asteriscos, onde o loop externo lida com rows e o loop interno lida com columns.
- Imprimir uma nova linha após cada linha.
Por exemplo, se a entrada for 3 rows e 4 columns, a saída deve ser:
****
****
****Folha de consulta
Loops aninhados são loops colocados dentro de outro loop. Para cada iteração do loop externo, o loop interno é executado completamente.
Estrutura básica de loop aninhado:
for (int i = 0; i < outer_limit; i++) {
for (int j = 0; j < inner_limit; j++) {
// Código do loop interno
}
// Código do loop externo
}Exemplo com saída:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d,%d ", i, j);
}
printf("\n");
}Saída:
0,0 0,1 0,2
1,0 1,1 1,2O loop interno completa todas as suas iterações antes que o loop externo passe para a sua próxima iteração.
Experimente você mesmo
#include <stdio.h>
int main() {
int rows, columns;
scanf("%d", &rows);
scanf("%d", &columns);
// Escreva seu código aqui para imprimir o padrão
return 0;
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentals
2Variáveis
Tipos de DadosInteiroFloat - DoubleCaracteresBooleanosConstantesFundamentos do printfRegras de Nomenclatura de VariáveisConversão de Tipos Parte 1Conversão de Tipos Parte 2Desafio de Recapitulação3Operadores
Operadores AritméticosOperador de MóduloIncremento/DecrementoOperadores de AtribuiçãoOperadores RelacionaisOperadores Lógicos Parte 1Operadores Lógicos Parte 2Operadores Lógicos Parte 3Desafio de Recapitulação