Neste tutorial, aprenderemos sobre loops aninhados em C ++ com a ajuda de exemplos. Também aprenderemos sobre break and continue in Nested Loop.
Um loop dentro de outro loop é chamado de loop aninhado. Vamos dar um exemplo,
Suponha que desejamos percorrer cada dia da semana por 3 semanas.
Para conseguir isso, podemos criar um loop para iterar três vezes (3 semanas). E dentro do loop, podemos criar outro loop para iterar 7 vezes (7 dias). É assim que podemos usar loops aninhados.
Exemplo: Aninhado para Loop
// C++ program to display 7 days of 3 weeks #include using namespace std; int main() ( int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( cout << " Day:" << j << endl; ) ) return 0; )
Resultado
Semana: 1 Dia: 1 Dia: 2 Dia: 3… Semana: 2 Dia: 1 Dia: 2 Dia: 3……
Podemos criar loops aninhados com while e do … while de maneira semelhante.
Exemplo: Exibindo um padrão
// C++ program to display a pattern // with 5 rows and 3 columns #include using namespace std; int main() ( int rows = 5; int columns = 3; for (int i = 1; i <= rows; ++i) ( for (int j = 1; j <= columns; ++j) ( cout << "* "; ) cout << endl; ) return 0; )
Resultado
* * * * * * * * * * * * * * * *
Neste programa, o loop externo itera de 1
para linhas.
O loop interno itera de 1
para colunas. Dentro do loop interno, imprimimos o caractere '*'
.
interromper e continuar dentro de loops aninhados
Quando usamos uma instrução break dentro do loop interno, ela termina o loop interno, mas não o loop externo. Por exemplo,
Exemplo: quebrar dentro de loops aninhados
#include using namespace std; int main() ( int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // break during the 2nd week if (i == 2) ( break; ) cout << " Day:" << j << endl; ) ) )
Resultado
Semana: 1 Dia: 1 Dia: 2… Semana: 2 Semana: 3 Dia: 1 Dia: 2…
Este programa não executa o loop interno quando o valor de i é, 2
ou seja, ele não imprime os dias da 2ª semana. O loop externo que imprime as semanas não é afetado.
Da mesma forma, quando usamos uma instrução continue dentro do loop interno, ela ignora a iteração atual apenas do loop interno. O loop externo não é afetado. Por exemplo,
Exemplo: continue dentro de loops aninhados
#include using namespace std; int main() ( int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // continue if the day is an odd number if (j % 2 != 0) ( continue; ) cout << " Day:" << j << endl; ) ) )
Resultado
Semana: 1 Dia: 2 Dia: 4 Dia: 6 Semana: 2 Dia: 2 Dia: 4 Dia: 6 Semana: 3 Dia: 2 Dia: 4 Dia: 6
Este programa imprime apenas os dias pares.
Sempre que days_in_week é estranho, a continue
instrução pula essa iteração do loop interno.