1. Câu lệnh WHILE … DO …;
Dùng để lặp đi lặp lại một công việc trong khi một điều kiện còn được thoả Phát biểu While có dạng:
WHILE Dieukien DO Caulenh;
Dieukien: Biểu thức logic.
Trước hết điều kiện được xét, nếu giá trị là False, vòng lặp While sẽ kết thúc, nếu là True thì phát biểu caulenh được thực hiện, sau khi thực hiện xong, quay lại kiểm tra điều kiện, công việc cứ tiếp tục như lập luận ở trên cho đến khi điều kiện có giá trị là False.
Ví dụ: Program Vonglap_While; Var x : integer; Begin x := 1; While (x<=12) Do Begin Writeln(‘Day la thang: ‘,x); x := x +1; End; Readln; End.
Bạn thấy kết quả như ví dụ trong vòng lặp For … to … do …;
Ví dụ: Tính tổng các số nguyên nhập vào cho đến khi nhập vào số 0. Program TinhTong; Var So : integer; Tong : Longint; Begin Tong := 0;
Write(‘Ban nhap vao so nguyen bat ky, nhap 0 de ket thuc. ‘); Readln(So);
While So <> 0 do Begin
Tong := Tong + So; Readln(So);
End;
Writeln(‘Tong cac so vua nhap vao la: ‘, Tong); Readln;
End.
2. Lưu ý trong vòng lặp While
Khác với vòng lặp For, trong vòng lặp While, số lần lặp không xác định được, nó tuỳ thuộc vào người sử dụng, ví dụ như ở chương trình trên, số lần lặp thực hiện mãi khi bạn chưa nhập vào số 0.
Bạn cần chú ý khi dùng điều kiện trong vòng lặp While, nếu chọn điều kiện luôn luôn đúng thì vòng lặp sẽ thực hiện vô tận, không thoát ra được, trừ khi Caulenh có chứa một phát biểu Goto nhảy khỏi vòng lặp While.
Ví dụ : While True do Writeln(‘Se lap vo tan’);
Bạn thử thêm vào đoạn chương trình trên một biến Dem có kiểu nguyên, gán cho biến này bằng 0, cứ mỗi lần điều kiện While đúng biến đếm sẽ tăng lên 1 (kiểm tra điều kiện trước, thực hiện biến dem nếu điều kiện thoả). Bạn sẽ thấy số lần vòng lặp While thực hiện sẽ bằng biến đếm. bạn xem ví dụ sau: Program TinhTong; Var So : integer; Tong : Longint; Dem : integer; Begin Dem := 0; Tong := 0;
Write(‘Ban nhap vao so nguyen bat ky, nhap 0 de ket thuc. ‘); Readln(So);
While So <> 0 do Begin
Dem := Dem + 1; Tong := Tong + So; Readln(So);
End;
Writeln(‘Tong cac so vua nhap vao la: ‘, Tong); Writeln(‘Bien dem luc nay bang: ‘,Dem);
Readln; End.
Chạy thử chương trình, giả sử nhập vào các số như sau (sau mỗi lần nhập, gõ phím Enter): 2
2 3 4 1
0
Bạn thấy kết quả sẽ là :
Tong cac so vua nhap vao la: 12 Bien dem luc nay bang: 5