W kodzie (z ilustracji) mamy pętlę for w postaci: inicjalizacja $i = 1, warunek kontynuacji $i <= 7 oraz modyfikacja licznika $i += 3. Wewnątrz pętli wykonuje się instrukcja print($i);.
Kluczowe jest poprawne prześledzenie iteracji oraz zrozumienie sposobu wypisywania danych:
- Iteracja 1: $i=1. Warunek 1 <= 7 jest spełniony, więc wykonuje się print i na wyjściu pojawia się "1". Następnie wykonywana jest modyfikacja licznika: $i staje się 4.
- Iteracja 2: $i=4. Warunek 4 <= 7 jest spełniony, więc wypisywane jest "4". Potem $i zwiększa się do 7.
- Iteracja 3: $i=7. Warunek 7 <= 7 nadal jest spełniony (bo operator <= oznacza "mniejsze lub równe"), więc wypisywane jest "7". Następnie $i rośnie do 10.
- Koniec: dla $i=10 warunek 10 <= 7 jest fałszywy, więc pętla się kończy.
Dlaczego wynik to dokładnie 147? Funkcja print() (tak jak echo) wypisuje wartość bez automatycznego dodawania separatorów, spacji czy znaku nowej linii. Oznacza to, że kolejne wypisania sklejają się w jeden strumień znaków: najpierw "1", potem od razu "4", potem od razu "7".
Dlatego odpowiedzi sugerujące inne wyniki są błędne:
- "47" pomija pierwszą iterację (błędny start lub błędne założenie, że 1 nie zostanie wypisane).
- "136" odpowiadałoby innemu krokowi pętli lub innym wartościom licznika (np. +2), a nie +3.
- "14" wynika z pominięcia trzeciej iteracji, co zwykle jest skutkiem pomylenia <= z < lub nieuwzględnienia, że 7 też spełnia warunek.
W praktyce, jeśli chcesz uzyskać odstępy, musisz je dodać jawnie, np. przez dopisanie " " lub "<br>" do wypisywanego tekstu.