9.1 Vòng lặp có điều kiện
Vòng lặp for
rất phù hợp khi chúng ta biết chính xác bao nhiêu lần muốn thực thi khối lệnh của vòng lặp. Nhưng không phải lúc nào cũng như vậy. Khoảng một nửa số trường hợp cần thực hiện khối lệnh cho đến khi một điều kiện nào đó đúng.
Chính vì vậy, trong Python có vòng lặp
while
. Cấu trúc tổng quát của nó còn đơn giản hơn vòng lặp for:
while điều kiện:
lệnh1
lệnh2
lệnhN
Vòng lặp sẽ tiếp tục thực hiện cho đến khi điều kiện là đúng.
Quan trọng! Để vòng lặp không chạy mãi mãi, cần có điều gì đó xảy ra trong khối lệnh làm ảnh hưởng đến điều kiện. Để điều kiện có thể trở thành sai và vòng lặp kết thúc.
Ví dụ:
Ví dụ | Giải thích |
---|---|
|
Vòng lặp sẽ in ra màn hình các số 0 1 2 3 4 |
Trong vòng lặp while
hai việc được thực hiện liên tục:
- Kiểm tra điều kiện.
- Thực thi khối lệnh.
Nếu điều kiện là đúng, khối lệnh sẽ được thực hiện. Nếu điều kiện là sai (ngay cả khi khối lệnh chưa được thực hiện lần nào), vòng lặp sẽ kết thúc.
Một ví dụ khác về vòng lặp while
, kết hợp với đầu vào không xác định số lượng dữ liệu từ người dùng:
Ví dụ | Giải thích |
---|---|
|
Vòng lặp sẽ in ra màn hình tất cả dữ liệu, cho đến khi người dùng nhập từ "exit". Sau đó vòng lặp sẽ in ra nó và kết thúc. |
9.2 Từ khoá break
Trong Python, từ khoá break
được sử dụng để chấm dứt ngay lập tức việc thực hiện vòng lặp
while
hoặc vòng lặp for
. Từ khoá này cực kỳ hữu ích khi cần thoát khỏi vòng lặp trước khi nó hoàn thành theo điều kiện bình thường.
Sử dụng break
tăng tính linh hoạt trong quản lý dòng chảy chương trình, cho phép phản ứng với các điều kiện thay đổi động trong quá trình thực hiện.
Sử dụng cơ bản:
for num in range(10):
if num == 5:
break # Ngưng vòng lặp khi num đạt đến 5
print(num)
Trong ví dụ này, vòng lặp sẽ in ra các số từ 0 đến 4. Khi num đạt đến 5, vòng lặp bị ngắt bởi từ khoá break
.
Sử dụng trong vòng lặp vô hạn:
while True:
response = input("Nhập 'exit' để thoát: ")
if response == 'exit':
break
Ở đây, break
được sử dụng để thoát khỏi vòng lặp vô hạn khi người dùng nhập 'exit'.
Từ khoá break
cũng thường được sử dụng để ngắt việc thực hiện của các vòng lặp lồng nhau, xử lý các tình huống đặc biệt cần tạm dừng hành động ngay lập tức, cũng như để ngắt các quy trình trong các ứng dụng đa luồng hoặc mạng.
Ví dụ, trong các bài toán tìm kiếm hoặc sắp xếp, khi sau khi tìm thấy phần tử cần thiết việc tiếp tục thực hiện vòng lặp không còn ý nghĩa:
elements = [1, 2, 3, -99, 5]
# Tìm phần tử âm đầu tiên
for element in elements:
if element < 0:
print("Tìm thấy phần tử âm: ", element)
break
Thực tiễn tốt nhất bao gồm việc sử dụng break
một cách thông minh, để không làm phức tạp logic của chương trình và không làm cho nó khó hiểu. Một thực tiễn tốt là ghi chú lý do ngắt vòng lặp, đặc biệt nếu chúng không rõ ràng từ ngữ cảnh.
Sử dụng break
nên được hợp lý hóa và thích đáng. Ví dụ, để cải thiện khả năng đọc và hiệu quả của mã, không chỉ đơn giản là "làm hỏng" logic. Việc sử dụng hiệu quả từ khoá này có thể cải thiện đáng kể hiệu suất của các chương trình, đặc biệt trong các thuật toán với tính toán cường độ cao.
9.3 Từ khoá continue
Từ khoá continue trong Python là công cụ mạnh mẽ để quản lý dòng chảy thực hiện của các vòng lặp.
Nó bỏ qua phần còn lại của mã trong lần lặp hiện tại của vòng lặp
và chuyển sang lần lặp tiếp theo. Từ khoá này thường được sử dụng trong các vòng lặp
for
và while
để bỏ qua các điều kiện cụ thể mà không cần ngắt toàn bộ vòng lặp.
Khái niệm cơ bản về sử dụng từ khoá continue
Đây là cách continue hoạt động trong một vòng lặp đơn giản:
for i in range(10):
if i % 2 == 0:
continue
print(i)
Trong ví dụ này, vòng lặp chỉ in ra các số lẻ từ 1 đến 9. Mỗi khi i
là số chẵn (chia hết cho 2), từ khoá
continue
sẽ kích hoạt, bỏ qua lệnh gọi hàm
print()
và chuyển sang lần lặp tiếp theo.
Ứng dụng continue
trong các tình huống thực tế
Lọc dữ liệu: continue
có thể được sử dụng để
lọc trước dữ liệu trước khi thực hiện các thao tác phức tạp hơn trong
vòng lặp.
data = ["apple", "banana", "", "cherry", "date"]
for fruit in data:
if not fruit:
continue # Bỏ qua các chuỗi rỗng
print(fruit.capitalize())
Bỏ qua các điều kiện cụ thể: Đặc biệt hữu ích trong các tình huống cần bỏ qua các phần tử nhất định dựa trên các điều kiện phức tạp.
scores = [92, 85, 99, 78, 82, 100, 67, 88]
for score in scores:
if score < 80:
continue # Bỏ qua điểm thấp
print("Xin chúc mừng, điểm của bạn: ", score)
Từ khoá continue
trong Python cung cấp cách hiệu quả để làm đơn giản hóa mã và làm cho nó dễ đọc hơn bằng cách bỏ qua các phần tử không phù hợp trong các lần lặp. Sử dụng quá mức từ khoá continue có thể khiến việc hiểu dữ liệu nào đang được xử lý bởi vòng lặp trở nên phức tạp, đặc biệt trong các vòng lặp phức tạp với nhiều điều kiện. Hãy duy trì sự cân đối hợp lý.
GO TO FULL VERSION