Vòng lặp được sử dụng khi có một thao tác được lặp đi lặp lại một cách tự động theo một quy tắc nhất định.
Ví dụ, muốn in dòng chữ Hello World 5 lần thì bạn phải viết đi viết lại 5 lần, việc này rất đơn giản, nhưng nếu bạn muốn viết 100 dòng thì sao. Quả là ác mộng nếu không có vòng lặp.
Vòng lặp For … To … Do
Vòng lặp For … To … Do được sử dụng khi ta biết trước số lần lặp
Cú pháp For <Giá trị đầu> To <Giá trị cuối> Do <Khối công việc>
Hãy xem ví dụ sau:
[codesyntax lang="pascal"]
program triangle_example;
uses crt;
var a,i,j:byte;
begin
clrscr;
write('Nhap do rong cua tam giac');
readln(a);
for i:=1 to a do
begin
for j:=0 to i-1 do
write('*');
writeln;
end;
readln
end.
[/codesyntax]
Nếu bạn nhập là 4 kết quả hiển thị sẽ là
*
**
***
****
Vòng lặp While … Do và Repeat … Until
Vòng lặp While … Do có nghĩa là “khi thoả mãn điều kiện này thì hãy thực hiện công việc ấy”
Vòng lặp Repeat … Until có nghĩa là “hãy thực hiện công việc ấy khi thoả mãn điều kiện này”.
Như vậy mục đích sử dụng hoàn toàn giống nhau, chỉ các vị trí sử dụng mà thôi.
Hai vòng lặp này có dùng thay For … to … do được không? Câu trả lời là có, nhưng tuỳ trường hợp. Cụ thể thế nào các bạn hãy làm nhiều bài tập sẽ thấy rõ.
Chúng ta hãy làm một bài tập về lãi kép:
“Hùng gửi 1000$ vào ngân hàng, biết rằng mỗi tháng Hùng được tính lãi 10% hỏi sau bao nhiêu tháng Hùng sẽ có 1500$”
Giải
[codesyntax lang="pascal"]
program lai_kep; uses crt;
var tiengoc, i:integer;
begin
clrscr;
while tiengoc<=1500 do
begin
tiengoc := tiengoc + tiengoc * 0.1;
i:=i+1;
end;
write('Sau',i,'thang');
readln;
end.
[/codesyntax]
Như vậy các bạn đã biết cách sử dụng vòng lặp rồi. Hãy luyện tập nhiều để thành thạo phần này. Nó sẽ hơi khó khăn với người bắt đầu nhưng rất thú vị đấy.



