Trong Python, cả vòng lặp for
và while
đều được sử dụng để thực hiện các thao tác lặp đi lặp lại. Tuy nhiên, chúng có những điểm khác biệt quan trọng về cách hoạt động và mục đích sử dụng.

1. Vòng lặp for
trong Python
Định nghĩa:
Vòng lặp for
được sử dụng để lặp qua một dãy giá trị đã biết trước, chẳng hạn như danh sách, chuỗi, tập hợp hoặc phạm vi (range
).
Cú pháp:
for variable in iterable: # Thực hiện các câu lệnh
variable
: Biến nhận giá trị của từng phần tử trong tập hợp.iterable
: Tập hợp dữ liệu có thể lặp qua như danh sách, chuỗi, tuple, dictionary, hoặc range().
Ví dụ 1: Lặp qua một danh sách
fruits = ["Táo", "Chuối", "Cam"] for fruit in fruits: print(fruit)
Kết quả:
Táo
Chuối
Cam
Ví dụ 2: Sử dụng range()
để lặp với số lần xác định
for i in range(1, 6): print(i)
Kết quả:
1
2
3
4
5
Khi nào sử dụng for
?
✅ Khi bạn biết trước số lần lặp hoặc cần duyệt qua một tập hợp dữ liệu có sẵn.
✅ Khi cần thực hiện thao tác trên từng phần tử của danh sách, chuỗi, hoặc từ điển.
2. Vòng lặp while
trong Python
Định nghĩa:
Vòng lặp while
được sử dụng khi số lần lặp chưa xác định trước và phụ thuộc vào một điều kiện logic. Vòng lặp sẽ tiếp tục chạy miễn là điều kiện vẫn đúng (True
).
Cú pháp:
while condition: # Thực hiện các câu lệnh
condition
: Biểu thức điều kiện kiểm soát vòng lặp, nếu đúng (True
), vòng lặp tiếp tục chạy, nếu sai (False
), vòng lặp dừng.
Ví dụ 1: Lặp cho đến khi điều kiện sai
count = 1 while count <= 5: print(count) count += 1 # Tăng biến đếm để tránh vòng lặp vô tận
Kết quả:
1
2
3
4
5
Ví dụ 2: Vòng lặp vô hạn (cần tránh)
while True: print("Chạy mãi mãi!")
🔴 Lưu ý: Đây là vòng lặp vô hạn, chỉ dừng lại khi sử dụng break
hoặc tắt chương trình.
Khi nào sử dụng while
?
✅ Khi bạn không biết trước số lần lặp.
✅ Khi điều kiện thay đổi trong quá trình thực thi chương trình.
✅ Khi cần chờ một sự kiện xảy ra trước khi thoát vòng lặp.
3. So sánh vòng lặp for
và while
trong Python
Tiêu chí | Vòng lặp for | Vòng lặp while |
---|---|---|
Mục đích | Lặp qua tập hợp phần tử đã biết trước. | Chạy đến khi điều kiện sai. |
Số lần lặp | Biết trước số lần lặp. | Không biết trước, phụ thuộc vào điều kiện. |
Cú pháp | for item in iterable: | while condition: |
Điều kiện dừng | Khi tập hợp phần tử được duyệt hết. | Khi điều kiện trở thành False . |
Ví dụ sử dụng | Duyệt danh sách, chuỗi, dictionary, range(). | Kiểm tra dữ liệu đầu vào, chờ sự kiện xảy ra. |
Hiệu suất | Thường nhanh hơn, vì sử dụng ít kiểm tra điều kiện. | Có thể tốn tài nguyên nếu không kiểm soát tốt. |
Dễ đọc và kiểm soát | Dễ hiểu và rõ ràng hơn. | Cần kiểm soát điều kiện để tránh vòng lặp vô hạn. |
4. Khi nào nên dùng for
và while
?
📌 Dùng for
khi:
✔ Bạn biết trước số lần lặp.
✔ Cần duyệt qua danh sách, chuỗi, từ điển hoặc phạm vi số.
✔ Cần thực hiện thao tác trên từng phần tử có sẵn.
📌 Dùng while
khi:
✔ Số lần lặp chưa xác định trước.
✔ Cần kiểm tra một điều kiện trước khi tiếp tục vòng lặp.
✔ Chạy vòng lặp dựa trên một sự kiện cụ thể.
5. Kết hợp for
và while
với câu lệnh break
và continue
break
– Dừng vòng lặp ngay lập tức
for i in range(1, 10): if i == 5: break # Dừng vòng lặp khi i == 5 print(i)
Kết quả:
1
2
3
4
continue
– Bỏ qua vòng lặp hiện tại, tiếp tục vòng tiếp theo
for i in range(1, 6): if i == 3: continue # Bỏ qua giá trị 3 print(i)
Kết quả:
1
2
4
5
6. Ví dụ thực tế: Dùng for
và while
trong một chương trình
Tính tổng các số chẵn từ 1 đến 10 dùng for
total = 0 for num in range(1, 11): if num % 2 == 0: total += num print("Tổng số chẵn từ 1 đến 10 là:", total)
Kết quả:
Tổng số chẵn từ 1 đến 10 là: 30
Dự đoán số ngẫu nhiên với while
import random target = random.randint(1, 10) guess = 0 while guess != target: guess = int(input("Nhập số dự đoán (1-10): ")) if guess < target: print("Số bạn đoán quá nhỏ!") elif guess > target: print("Số bạn đoán quá lớn!") print("Chúc mừng! Bạn đã đoán đúng số", target)
Chương trình tiếp tục chạy đến khi người dùng đoán đúng số ngẫu nhiên.
7. Kết luận
✅ Vòng lặp for
phù hợp để duyệt danh sách hoặc tập hợp dữ liệu có sẵn.
✅ Vòng lặp while
hữu ích khi điều kiện dừng chưa xác định trước.
✅ Cần kết hợp break
và continue
để kiểm soát vòng lặp hiệu quả.
✅ Hiểu rõ sự khác biệt giữa for
và while
giúp bạn viết code Python tối ưu hơn.
🚀 Bằng cách nắm vững for
và while
, bạn có thể xây dựng các chương trình Python mạnh mẽ và hiệu quả!