Loop aninhado C ++ (com exemplos)

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 1para linhas.

O loop interno itera de 1para 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 é, 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,

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

Artigos interessantes...