Pętla while jest instrukcją podobną do pętli repeat..until. Różnica polega na umiejscowieniu sprawdzania warunku logicznego. W przypadku pętli whilesprawdzenie ma miejsce przed pierwszym wykonaniem instrukcji wewnątrz pętli. Zatem jeśli wyrażenie_logiczne ma wartość False, instrukcja nie jest wykonywana.
Składnia instrukcji while:
while wyrażenie_logiczne do instrukcja;
gdzie wyrażenie_logiczne zwraca wartość logiczną, a instrukcja może być instrukcją blokową (begin ... end;). Pętla powtarza instrukcję instrukcja sprawdzając każdorazowo przed jej wykonaniem wartość wyrażenia logicznego. Kiedy osiągnie ono wartość False, pętla nie wykona już instrukcji, zakończy swe działanie i przekaże kontrolę dalszym instrukcjom w programie.
Przykłady:
i:=1; s:=1.0; while i <= 10 do begin s := s*i; i := i+1; end;
while Data[I] <> X do I := I + 1;
while I > 0 do begin if Odd(I) then Z := Z * X; I := I div 2; X := Sqr(X); end;
while not Eof(InputFile) do begin Readln(InputFile, Line); Process(Line); end;