Vòng lặp For

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><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 BeginEnd.

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.
  • 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.
  • 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