Kiểm soát cái đếm với một while Loop
Bạn cũng có thể sử dụng một while loop cho một loop kiểm soát cái đếm. Hai đoạn code tiếp theo thể hiện cùng tính
tổng với một for loop và một while loop, tương ứng.
# Summation with a for loop
theSum = 0
for count in range(1, 100001):theSum += count
print(theSum)
# Summation with a while loop
theSum = 0
count = 1
while count <= 100000:theSum += count
count += 1print(theSum)
Mặc dù cả hai loop sinh ra cùng kết quả, có một sự đánh đổi. Đoạn code thứ hai nhận thấy là phức tạp hơn. Nó bao
gồm một biểu thức Boolean và 2 phát biểu thêm cái tham chiếu đến biến count. Biến kiểm soát loop này phải được khởi
tạo công khai trước loop header và tăng một đơn vị trong loop body. Biến count cũng phải được thẩm định trong
điều kiện tiếp diễn công khai. Việc làm thủ công thêm này cho lập trình viên không chỉ tốn thời gian mà còn tiềm
tàng là một nguồn của các lỗi mới trong loop logic.
Tương phản lại, một for loop chỉ ra thông tin kiểm soát ngắn gọn trong header và tự động hóa thao tác xử lí của nó
sau hậu trường. Tuy nhiên, chúng ta sẽ sớm thấy các vấn đề cho chúng chỉ một while loop là giải pháp. Vì vậy, bạn
phải làm chủ logic của các while loops và cũng phải nhận thức các lỗi logic cái chúng có thể sinh ra.
Ví dụ tiếp theo thể hiện 2 phiên bản của một script cái đếm xuống từ một upper bound bằng 10 tới một lower bound
bằng 1. Nó là tùy thuộc vào bạn để quyết định cái nào là dễ hơn để hiểu và viết đúng.
# Counting down with a for loop
for count in range(10, 0, −1):print(count, end = ” “)
# Counting down with a while loop
count = 10
while count >= 1:print(count, end = ” “)
count -= 1