Dưới đây là giáo trình học lập trình về vòng lặp while
và for
với các ví dụ thực tế dựa trên văn hóa Việt Nam, giúp các bạn dễ hình dung và áp dụng.
Giáo Trình Học Vòng Lặp While
và For
Mục tiêu Bài học
Sau bài học này, bạn sẽ:
- Hiểu rõ khái niệm và mục đích sử dụng của vòng lặp trong lập trình.
- Nắm vững cú pháp và cách hoạt động của vòng lặp
while
. - Nắm vững cú pháp và cách hoạt động của vòng lặp
for
. - Phân biệt được sự khác nhau giữa vòng lặp
while
vàfor
và biết khi nào nên sử dụng loại nào. - Áp dụng vòng lặp để giải quyết các vấn đề thực tế, đặc biệt là các ví dụ gần gũi với văn hóa Việt Nam.
1. Vòng lặp là gì?
Trong lập trình, vòng lặp (loop) là một cấu trúc điều khiển cho phép bạn thực hiện một khối lệnh (hoặc một đoạn mã) lặp đi lặp lại nhiều lần cho đến khi một điều kiện nào đó không còn đúng nữa. Vòng lặp giúp bạn tiết kiệm thời gian và công sức khi cần thực hiện các tác vụ lặp lại mà không phải viết lại cùng một đoạn mã.
Hãy hình dung việc đếm số lượng bánh chưng trong một nồi lớn, hay việc bạn phải liên tục làm đi làm lại một công việc nào đó cho đến khi hoàn thành. Đó chính là ý tưởng cơ bản của vòng lặp.
2. Vòng lặp while
Vòng lặp while
(trong khi) được sử dụng khi bạn muốn thực hiện một khối lệnh miễn là một điều kiện còn đúng. Bạn không biết trước chính xác số lần lặp, mà nó sẽ lặp cho đến khi điều kiện trở thành False
.
Cú pháp cơ bản
Ví dụ 1: Nấu nồi bánh chưng
Hãy tưởng tượng bạn đang nấu một nồi bánh chưng lớn. Bạn cần đun liên tục trong 8 giờ.
Giải thích:
thoi_gian_da_nau < thoi_gian_can_nau
: Đây là điều kiện của vòng lặp. Vòng lặp sẽ tiếp tục chạy miễn là thời gian đã nấu chưa đạt 8 giờ.thoi_gian_da_nau += 1
: Đây là lệnh quan trọng giúp thay đổi điều kiện. Nếu không có lệnh này,thoi_gian_da_nau
sẽ không bao giờ tăng, và vòng lặp sẽ chạy mãi mãi (vòng lặp vô hạn), khiến chương trình bị treo.
Ví dụ 2: Hái hết quả bưởi trong vườn
Bạn có một cây bưởi trĩu quả và muốn hái cho đến khi không còn quả nào trên cây nữa.
Giải thích:
- Vòng lặp tiếp tục chạy miễn là
so_qua_buoi_tren_cay
lớn hơn 0. - Mỗi lần lặp, bạn "hái" đi một quả (
so_qua_buoi_tren_cay -= 1
) làm cho điều kiện ngày càng tiến gần đếnFalse
.
3. Vòng lặp for
Vòng lặp for
(cho) được sử dụng khi bạn muốn thực hiện một khối lệnh một số lần lặp xác định hoặc duyệt qua từng phần tử trong một tập hợp (như danh sách, chuỗi, dải số).
Cú pháp cơ bản
Hàm range()
:
range(n)
: Tạo ra một chuỗi số từ 0 đếnn-1
. (Ví dụ:range(5)
sẽ cho 0, 1, 2, 3, 4)range(bat_dau, ket_thuc)
: Tạo chuỗi số từbat_dau
đếnket_thuc-1
.range(bat_dau, ket_thuc, buoc_nhay)
: Tạo chuỗi số với bước nhảy xác định.
Ví dụ 1: Đếm số lượng món ăn trong mâm cỗ Tết
Bạn có một mâm cỗ Tết với các món ăn đã chuẩn bị sẵn. Bạn muốn liệt kê từng món.
Giải thích:
- Vòng lặp
for
sẽ duyệt qua từngmon_an
trong danh sáchmam_co_tet
. - Mỗi lần lặp,
mon_an
sẽ nhận giá trị của phần tử tiếp theo trong danh sách và khối lệnh bên trong sẽ được thực hiện.
Ví dụ 2: Rắc muối trên xôi gấc
Bạn muốn rắc muối vừng lên đĩa xôi gấc 5 lần để đảm bảo đều và vừa ăn.
Giải thích:
for lan_rac in range(so_lan_rac_muoi)
: Vòng lặp sẽ chạy 5 lần (từlan_rac = 0
đếnlan_rac = 4
).- Chúng ta in
lan_rac + 1
để hiển thị số lần rắc bắt đầu từ 1 thay vì 0.
Ví dụ 3: Đếm số lượng học sinh xếp hàng chào cờ
Bạn muốn biết số lượng học sinh đang xếp hàng chào cờ, mỗi bạn là một "phần tử" trong hàng.
Giải thích:
range(1, so_hoc_sinh + 1)
: Hàmrange
được sử dụng để tạo ra một chuỗi số từ 1 đếnso_hoc_sinh
. Điều này rất tiện lợi khi bạn biết chính xác số lần bạn muốn lặp.
4. So sánh vòng lặp while
và for
Nên chọn loại nào?
- Sử dụng
while
khi bạn cần lặp cho đến khi một điều kiện nào đó không còn đúng (ví dụ: "tiếp tục nhập dữ liệu cho đến khi người dùng nhập 'thoát'", "tiếp tục di chuyển đến khi đến đích"). - Sử dụng
for
khi bạn có một tập hợp các mục để xử lý hoặc bạn biết chính xác số lần bạn muốn lặp (ví dụ: "xử lý từng mục trong danh sách", "lặp 10 lần để tạo 10 bản sao").
Bài tập Thực hành (Dựa trên văn hóa Việt Nam)
Hãy thử viết chương trình cho các tình huống sau:
Đếm pháo hoa đêm giao thừa (
for
): Viết một chương trình sử dụng vòng lặpfor
để mô phỏng việc đếm ngược 5 giây trước khi pháo hoa bắn lên vào đêm giao thừa. Sau mỗi giây, in ra "Còn X giây...". Khi kết thúc, in "Bắn pháo hoa!!!".Đong gạo nấu cơm (
while
): Bạn đang đong gạo để nấu cơm. Cần đong đủ 3 bát gạo. Mỗi lần đong được 1 bát. Viết chương trình sử dụng vòng lặpwhile
để mô phỏng quá trình này. In ra số bát gạo đã đong sau mỗi lần lặp.Hái rau muống (
while
hoặcfor
): Trong vườn có 20 ngọn rau muống cần hái. Mỗi lần bạn hái được 1 ngọn.- Sử dụng vòng lặp
for
để mô phỏng quá trình hái từng ngọn. - Sau đó, thử sử dụng vòng lặp
while
để làm tương tự. So sánh hai cách làm.
- Sử dụng vòng lặp
Kiểm tra vé số (
while
): Bạn đang kiểm tra các tờ vé số cho đến khi tìm thấy một tờ trúng giải (giả sử có 5 tờ vé số, và tờ thứ 3 là tờ trúng). Viết chương trình sử dụng vòng lặpwhile
để kiểm tra từng tờ. Khi tìm thấy tờ trúng, dừng lại và thông báo.
0 Reviews