Menu
CoddyTech

Vòng lặp while

Thuộc phần Nền tảng cơ bản trong hành trình Python của Coddy. Bài học 36 trên 77.

Vòng lặp while khác với vòng lặp for. Vòng lặp for cho phép chúng ta lặp qua một range cụ thể, còn vòng lặp while cho phép tiếp tục lặp chừng nào một điều kiện nhất định còn thỏa mãn.

Để dùng vòng lặp while, hãy viết:

while condition:
	code

Code chỉ chạy nếu điều kiện là True.

Điều kiện thường được tạo bằng toán tử so sánh như <= (nhỏ hơn hoặc bằng), >= (lớn hơn hoặc bằng), < (nhỏ hơn), > (lớn hơn) hoặc == (bằng). Vòng lặp tiếp tục chạy miễn là phép so sánh đó cho kết quả True và dừng ngay khi kết quả chuyển thành False.

Bên trong thân vòng lặp, bạn thường cần cập nhật biến đang được kiểm tra. Bạn có thể làm việc này bằng các toán tử gán kết hợp như += (cộng rồi gán), -= (trừ rồi gán), *= (nhân rồi gán) hoặc /= (chia rồi gán). Ví dụ, x *= 2 là cách viết tắt của x = x * 2. Nếu không cập nhật biến, điều kiện sẽ không bao giờ thay đổi và vòng lặp sẽ chạy mãi.

Có nhiều trường hợp mà vòng lặp while có thể giải quyết vấn đề, nhưng vòng lặp for thì không.

Ví dụ, hãy xem xét bài toán sau:

Tìm lũy thừa nhỏ nhất của 2 lớn hơn một số đã cho.

Để giải bài này, ta sẽ dùng vòng lặp while để liên tục nhân lũy thừa hiện tại của 2 với 2 cho đến khi nó lớn hơn số đã cho:

number = 27
power_of_two = 1
while power_of_two <= number:
    power_of_two *= 2
print(power_of_two)

Ở đây, power_of_two <= number là điều kiện sử dụng toán tử so sánh, còn power_of_two *= 2 cập nhật biến sau mỗi lần lặp bằng toán tử gán kết hợp. Khi power_of_two lớn hơn number, điều kiện trở thành False và vòng lặp dừng lại.

challenge icon

Thử thách

Người mới

Viết một chương trình nhận một đầu vào là số thực (float).

Dùng vòng lặp while để chia đầu vào cho 2 chừng nào số đó lớn hơn hoặc bằng 3.5.

In ra số đầu tiên nhỏ hơn 3.5.

Tự làm thử

quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Nền tảng cơ bản

Tự luyện tập: Trình biên dịch Python online