Loops Aninhados
Parte da seção Fundamentos do Journey de C++ da Coddy — lição 48 de 74.
Um loop aninhado é simplesmente um loop dentro de outro loop. O loop interno completará todas as suas iterações para cada iteração única do loop externo.
Uma boa analogia para isso é um relógio: para cada hora (loop externo), o ponteiro dos minutos (loop interno) deve completar seu ciclo completo de 60 minutos.
Exemplo de um loop aninhado:
for (int x = 0; x < 2; x++) {
for (int y = 0; y < 2; y++) {
std::cout << x << " " << y << std::endl;
}
}
// Isso produzirá a seguinte saída:
// 0 0
// 0 1
// 1 0
// 1 1O loop externo (x) executa duas vezes e, para cada uma dessas vezes, o loop interno (y) executa duas vezes.
Desafio
InicianteEscreva um programa que encontre todos os pares de números que somam n usando números de 1 a n - 1.
O programa deve mostrar todas as combinações possíveis, incluindo pares duplicados em ordem inversa. Por exemplo, tanto "1 5" quanto "5 1" devem ser mostrados, pois são considerados arranjos diferentes do mesmo par. Os números também podem ser pareados consigo mesmos se a sua soma for igual a n.
Por exemplo, se n = 6, a saída deve ser:
1 5
2 4
3 3
4 2
5 1Porque:
1 + 5 = 6
2 + 4 = 6
3 + 3 = 6
4 + 2 = 6
5 + 1 = 6Folha de consulta
Um loop aninhado é um loop dentro de outro loop. O loop interno completa todas as suas iterações para cada iteração individual do loop externo.
Estrutura básica de um loop aninhado:
for (int x = 0; x < 2; x++) {
for (int y = 0; y < 2; y++) {
std::cout << x << " " << y << std::endl;
}
}
// Output:
// 0 0
// 0 1
// 1 0
// 1 1O loop externo é executado completamente e, para cada iteração do loop externo, o loop interno percorre todas as suas iterações.
Experimente você mesmo
#include <iostream>
int main() {
int n;
std::cin >> n;
// Escreva seu código abaixo
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 Fundamentos
4Operadores Parte 1
Operadores AritméticosOperador de MóduloIncremento/DecrementoPós-incremento/DecrementoAtalhos AritméticosOperadores de ComparaçãoComparação de Strings7Fundamentos de Entrada/Saída
Comando coutComando cinEntrada de StringRevisão - Até 120Revisão - Verdadeiro ou Falso3Variáveis Parte 2
Declaração de TipoConvenções de NomenclaturaRecapitulação - Inicializar VariáveisType Casting Parte 1Type Casting Parte 26Tomada de Decisão
Estrutura IfIf - ElseEstrutura SwitchOperador CondicionalRecapitulação - If ElseIf - Else Aninhado