Trong Pascal, để mô phỏng thao tác lặp lại một hành động nào đó, Pascal cung cấp vòng lặp For với 2 dạng như sau:
Vòng lặp For - To - Do
Cấu trúc:
For <Biến điều khiển> := <Giá trị đầu> To <Giá trị cuối> Do <Công việc>;
Với <Biến điều khiển>
là một biến kiểu đếm được (số nguyên, liệt kê, miền con), được gọi là biến điều khiển, biến chỉ mục hoặc biến đếm. <Giá trị đầu>
và <Giá trị cuối>
quy định khoản giá trị mà biến điều khiển có thể nhận được. Và <Công việc>
là phần thân của vòng lặp, có thể là một lệnh đơn giản hoặc một khối lệnh được đặt trong cặp Begin và End.
Ví dụ:
For i:= 1 To 10 Do Writeln(i);
Vòng lặp For - To - Do được thực hiện như sau:
- Bước 1: Gán giá trị đầu cho
<Biến điều khiển>
- Bước 2: Kiểm tra giá trị của
<Biến điều khiển>
- Nếu
<Biến điều khiển>
≤<Giá trị cuối>
thì thực hiện<Công việc>
- Nếu
<Biến điều khiển>
><Giá trị cuối>
thì kết thúc vòng lặp.
- Nếu
- Bước 3: Nếu
<Biến điều khiển>
=<Giá trị cuối>
thì kết thúc vòng lặp, còn không thì tăng giá trị của<Biến điều khiển>
lên 1 đơn vị rồi quay lại bước 2.
Ví dụ một chương trình cụ thể:
Program forLoop;
Var a : Byte;
Begin
For a := 10 To 15 Do
Writeln('a = ', a);
end.
Khi đoạn code trên được biên dịch và thực thi, nó in ra kết quả như sau:
a = 10
a = 11
a = 12
a = 13
a = 14
a = 15
Ví dụ tính tổng các số liên tiếp từ 1 đến 100
Program sumCalc;
Var num : Byte;
sum : Integer;
Begin
sum := 0;
For num := 1 To 100 Do
sum := sum + i;
Writeln('1 + 2 + 3 + ... + 100 = ', sum);
End.
Vòng lặp For - DownTo - Do
Cấu trúc:
For <Biến điều khiển> := <Giá trị đầu> DownTo <Giá trị cuối> Do <Công việc>;
Vòng lặp For - DownTo - Do được thực hiện như sau:
- Bước 1: Gán giá trị đầu cho
<Biến điều khiển>
- Bước 2: Kiểm tra giá trị của
<Biến điều khiển>
- Nếu
<Biến điều khiển>
≥<Giá trị cuối>
thì thực hiện<Công việc>
- Nếu
<Biến điều khiển>
<<Giá trị cuối>
thì kết thúc vòng lặp.
- Nếu
- Bước 3: Nếu
<Biến điều khiển>
=<Giá trị cuối>
thì kết thúc vòng lặp, còn không thì thì giảm giá trị của<Biến điều khiển>
xuống 1 đơn vị rồi quay lại bước 2.
Ví dụ một chương trình cụ thể:
Program forLoop;
Var a : Byte;
Begin
For a := 10 DownTo 5 Do
Writeln('a = ', a);
end.
Khi đoạn code trên được biên dịch và thực thi, nó in ra kết quả như sau:
a = 10
a = 9
a = 8
a = 7
a = 6
a = 5
Bình luận