Câu lệnh lặp với số lần chưa biết trước được gọi là vòng lặp không xác định (unbounded loop), trong khi đó câu lệnh lặp với số lần chưa biết trước được gọi là vòng lặp xác định (bounded loop).
Cụ thể, sự khác biệt giữa hai loại vòng lặp này như sau:
Vòng lặp không xác định: Không biết trước số lần lặp cụ thể, mà chỉ dừng lại khi thỏa mãn điều kiện nào đó trong quá trình lặp. Vòng lặp này thường sử dụng khi chưa biết trước số lần cần lặp hoặc khi số lần lặp phụ thuộc vào một điều kiện nào đó. Ví dụ: vòng lặp while hoặc do-while.
Vòng lặp xác định: Biết trước số lần lặp cụ thể, vòng lặp sẽ lặp lại một số lần đã được xác định trước. Vòng lặp này thường sử dụng khi biết trước số lần cần lặp. Ví dụ: vòng lặp for.
Ví dụ về vòng lặp không xác định:
i := 0;
while i < 10 do
begin
i := i + 1;
WriteLn('i = ', i);
end;
Vòng lặp này sẽ lặp lại cho đến khi i đạt giá trị 10. Số lần lặp không biết trước, mà phụ thuộc vào giá trị của i.
Ví dụ về vòng lặp xác định:
for i := 1 to 10 do
begin
WriteLn('i = ', i);
end;
Vòng lặp này sẽ lặp lại 10 lần, từ i bắt đầu từ 1 và tăng lên 1 đơn vị cho đến khi đạt giá trị 10. Số lần lặp là xác định, và đã được xác định trước bởi vòng lặp for.