Tải bản đầy đủ (.doc) (2 trang)

Vòng lặp FOR

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (59.58 KB, 2 trang )

Vòng FOR
Nguyễn Hiếu Cường
Về sự hoạt động của cấu trúc lặp for
Pascal là ngôn ngữ lập trình được dạy và sử dụng rộng rãi trong các trường học hiện nay.
For là một trong ba cấu trúc lặp của ngôn ngữ Pascal , rất quen thuộc đối với những ai đã
và đang lập trình bằng ngôn ngữ này. Tuy nó thật đơn giản nhưng qua kinh nghiệm giảng
dạy tôi thấy không phải bạn học sinh nào cũng hiểu được rõ ràng cách thực hiện của cấu
trúc đó. Ta hãy xem một số ví dụ:
Ví dụ 1:
n:=10;
for i:= 1 to n do
begin
n:= 5;
write (i:4);
end;
Đoạn chương trình này sẽ in ra màn hình kết quả là:
1 2 3 4
5 6 7 8
9 10
Lý do là: Trình biên dịch chỉ xác định giá trị cuối (n) đúng một lần khi bắt đầu vào vòng
lặp, vì thế trong quá trình lặp, việc thay đổi giá trị cuối không có ý nghĩa gì.
Ví dụ 2a:
n:=10;
For i:=1 to 10 do
begin
write (i:4);
i:=i+1;
end;
Đoạn chương trình này sẽ in ra màn hình kết quả là:
1 3 5 7 9
Ví dụ 2b:


n:=10;
for i:=1 to 10 do
begin
write(i:4);
i:=i+2;
end;
Đoạn chương trình này sẽ lặp vô hạn.Hai đoạn chương trình 2a và 2b gần như giống nhau
hoàn toàn, tại sao kết quả lại khác nhau nhiều như vậy?Rất nhiều bạn học sinh lý giải sự
hoạt động của cấu trúc for thường cho rằng: for sẽ thực hiện chừng nào biến điều khiển (i)
≤ giá trị cuối (n).
Nhưng thực chất lại là: for sẽ hoạt động đến khi biến điều khiển = giá trị cuối + 1 (trong
trường hợp kiểu của biến điều khiển là nguyên, các kiểu logic hay ký tự cũng lý luận tương
tự). Sự khác nhau này xem ra không có gì là lớn, nhưng trong nhiều trường hợp lại làm
chúng ta không thể lý giải được tai sao chương trình cho kết quả như vậy. Trong hai ví dụ
trên, chúng ta có thể dễ dàng thấy được kết quả của đoạn chương trình 2a nhưng còn đoạn
2b thì sao lại lặp vô hạn? Lý do chính là giá trị của i không bao giờ bằng 11 được.
Bạn hãy thử làm và tìm hiểu thêm nhiều điều "kỳ quái" khác nữa. Và có lẽ những điều đó
cũng làm cho việc học lập trình của chúng ta trở nên thú vị hơn. Chúc các bạn thành công
và mong nhận được các ý kiến trao đổi.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×