Pętla do...while w C/C++ ma cechę, która odróżnia ją od pętli while: warunek jest sprawdzany po wykonaniu instrukcji. Oznacza to, że ciało pętli wykona się co najmniej jeden raz, nawet jeśli warunek początkowo byłby fałszywy.
Na schemacie blokowym pętla do...while ma zwykle układ:
- blok operacji (ciało pętli) znajduje się "przed" decyzją,
- romb decyzyjny (warunek) jest umieszczony po bloku operacji,
- jedna gałąź z rombu prowadzi z powrotem do bloku (kontynuacja iteracji),
- druga gałąź wychodzi z pętli (zakończenie).
Dlatego poprawny schemat to taki, w którym strzałki pokazują sekwencję: wykonaj instrukcje → sprawdź warunek → ewentualnie wróć.
Pozostałe schematy, które często pojawiają się jako pułapki, zwykle odpowiadają innym konstrukcjom:
- while (test na początku): romb decyzyjny jest przed blokiem instrukcji, więc pętla może wykonać się zero razy.
- for: ma z reguły wydzielone elementy inicjalizacji i modyfikacji licznika (na schemacie widać dodatkowy krok aktualizacji lub zapis "i=i+1").
- repeat...until (spotykane w pseudokodzie): logicznie podobne do do...while, ale warunek zakończenia bywa zapisany odwrotnie (wyjście następuje, gdy warunek jest spełniony). Na egzaminie kluczowe jest, czy powrót następuje dla warunku prawdziwego, czy fałszywego.
Wskazówka egzaminacyjna: jeśli widzisz romb na końcu i strzałkę powrotną do bloku instrukcji, sprawdź, dla której odpowiedzi (tak/nie) następuje powrót. W do...while w C/C++ pętla trwa while (warunek), czyli powrót odpowiada sytuacji, gdy warunek jest prawdziwy.