Khóa học
Vòng lặp while có phần giống với câu lệnh if: nó sẽ thực thi đoạn mã bên trong nếu điều kiện là True. Tuy nhiên, khác với câu lệnh if, vòng lặp while sẽ tiếp tục thực thi lặp đi lặp lại miễn là điều kiện vẫn True.
Vòng lặp while

Cú pháp của vòng lặp while rất giống với câu lệnh if, như bạn có thể thấy ở trên. Vòng lặp while không quá phổ biến, nhưng trong một số trường hợp, nó lại rất hữu ích.
Ví dụ
Giả sử bạn đang tính toán số học cho một mô hình dựa trên dữ liệu của mình. Việc này thường liên quan đến việc lặp lại cùng một bước cho đến khi sai số giữa mô hình và dữ liệu nhỏ hơn một ngưỡng nào đó. Khi bạn có thể diễn đạt lại bài toán thành lặp một thao tác cho đến khi thỏa điều kiện, vòng lặp while thường là lựa chọn phù hợp.
Trong ví dụ dưới đây, ban đầu bạn bắt đầu với sai số bằng 50.0. Tiếp theo, bạn sẽ viết một vòng lặp while, ở phần điều kiện, ta viết error > 1, để vòng lặp while chạy lại miễn là sai số lớn hơn 1. Bên trong vòng lặp while, bạn chia sai số cho bốn và cập nhật biến error. Khi chạy lần đầu, ta nhận được 12.5.

Python sau đó sẽ quay lại kiểm tra điều kiện của vòng lặp while với giá trị sai số mới bằng 12.5. Điều kiện lại đúng và đoạn mã tiếp tục được thực thi.

Python lại quay về điều kiện của vòng lặp while và cố gắng chạy lại mã. Vì 3.125 lớn hơn 1, đoạn mã tiếp tục thực hiện phép tính.

Cuối cùng, điều kiện mới của vòng lặp while nhỏ hơn 1, nên đoạn mã báo lỗi và sẽ không chạy nữa.

Ví dụ này sẽ rất hữu ích vì đã đến lúc bạn tự xây dựng một vòng lặp while! Chúng ta sẽ viết một vòng lặp while triển khai hệ thống điều khiển cơ bản cho một con lắc ngược. Nếu có độ lệch so với trạng thái thẳng đứng hoàn hảo, vòng lặp while sẽ dần dần điều chỉnh để khắc phục độ lệch đó.
Lưu ý rằng nếu vòng lặp while của bạn chạy quá lâu, có thể bạn đã mắc lỗi. Đặc biệt, hãy nhớ thụt lề nội dung bên trong vòng lặp!
Ví dụ về lỗi vòng lặp while (chạy liên tục)
Giả sử bạn ghi chú (comment) hoặc xóa phần cập nhật giá trị sai số và chạy lại script. Khi đó sai số sẽ không được cập nhật và điều kiện sẽ luôn đúng. Kết quả là vòng lặp while sẽ chạy mãi mãi.

Nếu bạn mắc lỗi này trên hệ thống của mình, bạn sẽ phải ngắt chương trình Python bằng cách nhấn tổ hợp phím Control + C.
Ví dụ
Trong ví dụ dưới đây, bạn sẽ tạo biến offset với giá trị khởi tạo 8. Sau đó bạn sẽ viết một vòng lặp while tiếp tục chạy miễn là offset khác 0.
Bên trong vòng lặp while:
- Bạn sẽ in ra câu
"correcting...". - Tiếp theo, giảm giá trị của
offsetđi 1. Bạn có thể làm điều này vớioffset = offset - 1. - Cuối cùng, trong vòng lặp while của bạn, in ra
offsetđể xem nó thay đổi như thế nào.

Khi chạy chương trình trên, nó cho kết quả như sau:
correcting...
7
correcting...
6
correcting...
5
correcting...
4
correcting...
3
correcting...
2
correcting...
1
correcting...
0
Để tìm hiểu thêm về vòng lặp while, vui lòng xem video từ khóa học Intermediate Python của chúng tôi.
Nội dung này được trích từ khóa học Intermediate Python của DataCamp do Hugo Bowne-Anderson giảng dạy.
Khám phá thêm hướng dẫn Vòng lặp trong Python cũng như bài hướng dẫn Mô phỏng vòng lặp Do-While trong Python để tiếp tục học và luyện tập về các vòng lặp trong Python nhằm trở nên thành thạo.