W tym przypadku mamy klasyczną pętlę for, czyli typową konstrukcję służącą do wykonywania iteracji w programowaniu. Program zaczyna od wartości i=0 i zwiększa ją do i=3, wykonując blok kodu suma=suma+i za każdym razem. To powoduje, że cała ta konstrukcja wykona się dokładnie 4 razy, bo pętla działa, dopóki i<=3, czyli dla wartości 0, 1, 2 oraz 3. W praktyce właśnie takie iteracje pozwalają nam zautomatyzować powtarzanie operacji bez konieczności ręcznego kopiowania kodu. Moim zdaniem to jedna z najbardziej fundamentalnych rzeczy, jaką warto opanować na początku nauki programowania. Bez iteracji trudno sobie wyobrazić np. sumowanie elementów tablicy, przetwarzanie zbioru danych czy nawet proste generowanie raportów. W codziennej pracy z kodem iteracje spotyka się praktycznie wszędzie – od prostych algorytmów po bardziej zaawansowane pętle obsługujące np. zdarzenia w aplikacjach. Warto też pamiętać, że dobre praktyki nakazują pisanie takich pętli w sposób czytelny i optymalny, zarówno pod względem wydajności, jak i zrozumiałości dla innych członków zespołu. Pętle for są standardem w wielu językach, m.in. C, C++, Java, Python (choć tam składnia wygląda trochę inaczej).
Rozpatrując tę konstrukcję programistyczną, łatwo się pomylić przez podobieństwo nazw lub mylące skojarzenia. Niektórzy mogą uznać, że w pętli for zachodzi rekurencja albo rekursja, bo coś się powtarza – ale to zupełnie coś innego. Rekurencja (czasem mylnie nazywana rekursją) to technika programowania, w której funkcja wywołuje samą siebie. Tutaj ani suma, ani pętla nie odwołuje się do tej samej funkcji czy bloku kodu, więc nie ma żadnego samowywołania. Rekurencja typowo pojawia się np. przy rozwiązywaniu problemów takich jak obliczanie silni, ciągu Fibonacciego czy przeszukiwanie drzew – zupełnie inny mechanizm niż iteracyjne przechodzenie przez zakres wartości jak w tym zadaniu. Z kolei odpowiedź dekrementacje sugeruje, że coś jest pomniejszane. W analizowanym przykładzie jest dokładnie odwrotnie – zmienna i jest inkrementowana, czyli zwiększana o 1 w każdej iteracji. Dekrementacja byłaby, gdyby i zmniejszało się (np. i--), co tutaj nie ma miejsca. W mojej opinii często można się nabrać na podobieństwo słów, a przecież chodzi o zupełnie inne koncepcje. Iteracja to po prostu powtarzanie fragmentu kodu określoną liczbę razy lub do spełnienia warunku, a nie wywołanie funkcji samej siebie ani zmniejszanie wartości zmiennej. W praktyce pętle for, while czy do-while to podstawowy zestaw narzędzi programisty i stanowią trzon iteracyjnych rozwiązań w większości języków, dlatego mylenie ich z rekurencją prowadzi do błędnych konstrukcji logicznych i nieoptymalnego kodu. Warto na przyszłość rozróżniać te pojęcia, bo mają zupełnie inne zastosowania w codziennym programowaniu.