C ++ Nested Lop (com exemplos)

Neste tutorial, aprenderemos sobre loops aninhados em C ++. Aprenderemos a usar loops aninhados para, while e do … while em um programa.

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 aninhado para iterar três vezes (3 semanas). E dentro do loop, podemos criar outro loop para iterar 7 vezes (7 dias). Por exemplo,

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 i == 1para i == rows.

O loop interno itera de j == 1para j == columns. 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,

 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 é, 2ou 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,

 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 continueinstrução pula essa iteração do loop interno.

Artigos interessantes...