Home > Pascal > Pascal căn bản > Vòng lặp while trong Pascal
Cần 2 bạn dịch bài về C#, Winform, .NET ... nói chung là viết bài về các công nghệ sử dụng code C#. Yêu cầu phải có kiến thức nên tảng lĩnh vực bạn chọn, nhuận bút 50k / bài. inbox mình nếu có nhu cầu nhé.

Vòng lặp while trong Pascal

Trong bài này chúng ta sẽ tìm hiểu vòng lặp while trong Pascal, đây là vòng lặp có công dụng giống như vòng lặp for, chỉ khác một điều là ta không cần biết trước tổng số lần lặp.

Vòng lặp while cũng đóng vai trò rất quan trọng, được sử dụng rất nhiều trong lập trình thực tế. Không chỉ ở Pascal mà các ngôn ngữ như C, C++, PHP đều xem trong while.

1. Vòng lặp while trong Pascal

Lệnh lặp while-do trong Pascal cho phép tính toán lặp đi lặp lại cho đến khi một số điều kiện kiểm tra được thỏa mãn. Nói cách khác, nó liên tục thực thi một câu lệnh đích, miễn điều kiện lặp đã cho là đúng.

Cú pháp như sau:

while (condition) do S;

Trong đó:

  • condition là điều kiện lặp. Nếu condition true thì vòng lặp thực hiện, false thì dừng vòng lặp.
  • S là những lệnh sẽ thực hiện nếu condition true. Nếu nhiều lệnh thì phải đặt trong khối BEGIN .. END

Ví dụ: In ra các số từ 1 đến 5. Bài toán này đã được giải ở vòng lặp for, bây giờ mình sử dụng vòng lặp while để xử lý như sau.

program WhileLoopFreetuts;
var
    number: integer;
begin
    number : = 1;
    while number <= 5 do
    begin
        writeln(number);
        number : = number + 1;
    end;
    readln;
end.

Như bạn thấy, trong thân vòng lặp mình đã có một đoạn code như sau:

number : = number + 1;

Dòng này có công dụng là tăng giá trị của number lên 1 sau mỗi lần lặp, điều này sẽ giúp chương trình tránh bị lặp vô hạn bởi điều kiện dừng là number > 5.

2. Vòng lặp for lồng nhau trong Pascal

Tương tự như vòng lặp for, vòng lặp while trong Pascal cũng cho phép bạn đặt lồng nhau. Thực tế điều này được sử dụng rất thường xuyên khi xây dựng những ứng dụng thực tiễn.

Vòng lặp for lồng nhau tức là đặt vòng while A nằm trong B, cấu trúc như sau:

while (condition_A)
begin
    while (condition_B)
    begin
        // S
    end;
end;

Quay lại giải bài toán in ra bảng cửu chương, ta sẽ sử dụng vòng lặp while để thực hiện như sau:

program WhileLoopFreetuts;
var 
    a: integer;
    b: integer;
begin
    a := 2;

    while (a <= 9) do
    begin
        // phai gan lai b = 1 tai vi phan tu dau tien la 1
        // neu ban khong gan lai thi sai thuat toan
        b := 1;

        while (b <= 9) do
        begin
            writeln(a, ' x ', b, ' = ', (a * b));

            // cong them 1 cho b
            b := b + 1;
        end;

        // cong them 1 cho a
        a := a + 1;
    end;
    readln;
end.

Nếu bạn là người mới bắt đầu học lập trình thì khi giải bài toán này có vẻ rất khó hiểu phải không? Điểm khó nhất là dòng gán lại b = 1, đây là dòng quan trọng vì nó quyết định đến kết quả in ra của bảng cửu chương.

Không tin bạn hãy thử bỏ dòng này, sau đó chạy lên thì kết quả chỉ in ra bảng cửu chương 2. Lý do là sau lần lặp này thì b đã có giá trị là 10, nên các lần lặp sau vòng lặp con sẽ không được thực hiện.

Như vậy là mình đã giới thiệu xong vòng lặp whiel trong Pascal. Nhìn chúng nó cũng không khó, miễn là bạn chịu khó thực hiện theo hai ví dụ mà minh đã đưa ra, sau đó thay đổi giá trị và suy nghĩ xem tại sao lại có được kết quả như vậy. Chúc bạn thành công nhé.

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net.

BÀI VIẾT

notice png LIST home png HOME hot gif BÁO
LỖI
top png TOP