Zagnieżdżone pętle C++.

0

Jetsem początkujący w tych sprawach i mam problem ze zrozumieniem pętli zagnieżdżonych, a w szczególności tego przykładu. Nie mogę zrozumieć dlaczego wypisywana jest coraz większa liczba "*". Czy gdy x osiągnie większą wartość niż a, to w kolejnym powtórzeniu x wraca do wartości 1? Mógłby ktoś przeprowadzić ślad zmiennych? Przepraszam, że o takie trywialne rzeczy pytam.

#include <iostream>

using namespace std;

int main()
{
    for( int a = 1; a <= 30; ++a )
    {
        for( int x = 1; x <= a; x++){
            cout << "*";
        }
        
        cout << endl;
    }
    return 0;
}
0

Bo drukowanie znaku gwiazdki również jest w pętli, która jest w pętli.

2

a to iteracja pionowa, natomiast x to iteracja pozioma. Dlaczego tak jest? Zauważ, że gdybyś wyrzucił zagnieżdżoną pętlę to program wypisałby Ci na ekranie 30 znaków nowej linii czyli cout << endl; Te pętle działają w taki sposób, że jeżeli np. jesteś w linijce nr 3 (czyli a = 3) to ten warunek pętli wewnętrznej x <= a opisuje ile gwiazdek ma ona wydrukować i w tym wypadku wydrukuje trzy gwiazdki (poziomo gdyż nie ma tam znaku nowej linii). Ilość gwiazdek zmienia się w zależności od linijki, w której aktualnie jesteśmy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1