Warunek dopóki i>3 sprawia, że pętla nie jest wykonywana ani razu, bo już na początku zmienna i ma wartość 0, która nie spełnia tego warunku. Takie zachowanie jest bardzo typowe w wielu językach programowania, szczególnie gdy stosujemy pętle z warunkiem wejściowym, jak while w C, C++ czy Pythonie. W tym przypadku inkrementacja i=i+1 nigdy nie zostaje uruchomiona, więc liczba operacji inkrementacji wynosi dokładnie zero. Moim zdaniem to ważna pułapka logiczna – czasem wydaje się, że pętla coś wykona, bo jest instrukcja inkrementacji i cały blok, a tymczasem wszystko rozgrywa się na poziomie warunku początkowego. W praktyce profesjonalnej programista powinien zawsze na chłodno przeanalizować, czy warunek pozwala wejść do pętli, zanim zacznie rozważać ile operacji jest wykonanych. W dokumentacjach i materiałach edukacyjnych często się to podkreśla, bo takich błędów łatwo uniknąć, jeśli dobrze rozumie się logikę pętli. Przykład bardzo przypomina popularny case, gdy błędnie ustawiony warunek pętli może całkiem zablokować jej wykonywanie – zdarza się to nawet doświadczonym osobom. Warto się upewnić, czy warunek wejścia do pętli jest spełniony dla wartości początkowych zmiennych, bo to jeden z filarów poprawnego programowania strukturalnego.
W zadaniu była pętla z warunkiem dopóki i>3 – to oznacza, że zanim zostanie wykonany pierwszy krok w środku pętli (czyli inkrementacja zmiennej i), interpreter sprawdza, czy warunek jest prawdziwy. Początkowo i=0, więc warunek (i>3) nie jest spełniony nawet raz. Jeśli ktoś przyjął, że inkrementacja wykonała się raz, dwa albo trzy razy, to prawdopodobnie założył, że pętla działa jak for lub do...while, czyli choć raz wykona swoje ciało, zanim sprawdzi warunek – a tak nie jest. Warto pamiętać, że pętle z warunkiem z przodu najpierw sprawdzają warunek, a dopiero później uruchamiają instrukcje w środku. Z mojego doświadczenia wynika, że spora część osób myli pętlę while (czy dopóki) z pętlą do...while, gdzie ciało pętli wykona się przynajmniej raz. To typowy błąd, szczególnie na początku nauki programowania, bo składnia czasem wygląda podobnie, a zachowanie jest zupełnie inne. W tym przykładzie żadna operacja inkrementacji nie zachodzi, bo warunek jest fałszywy już na starcie. W praktyce przy rozwiązywaniu tego typu problemów dobrze jest rozpisać sobie krok po kroku, co się dzieje z każdą zmienną, zanim założy się ile razy coś się powtórzy. To podstawowa technika stosowana przy analizie algorytmów i przy debugowaniu kodu. Lepiej poświęcić chwilę na analizę logiki, niż potem szukać trudnych do wykrycia błędów w większych projektach. Dla doświadczonego programisty takie przypadki są wskazówką, by zawsze sprawdzać graniczne przypadki działania pętli.