break
và continue
cho phép bạn kiểm soát luồng các vòng lặp của mình. Chúng là một khái niệm mà những người mới bắt đầu sử dụng Python có xu hướng hiểu sai, vì vậy hãy chú ý cẩn thận
Sử dụng break
Câu lệnh break
sẽ hoàn toàn thoát ra khỏi vòng lặp hiện tại, nghĩa là nó sẽ không chạy thêm bất kỳ câu lệnh nào chứa bên trong nó
>>> names = ["Rose", "Max", "Nina", "Phillip"]
>>> for name in names:
.. print[f"Hello, {name}"]
.. if name == "Nina":
.. break
...
Hello, Rose
Hello, Max
Hello, Nina
break
hoàn toàn thoát ra khỏi vòng lặp
Sử dụng continue
continue
hoạt động hơi khác một chút. Thay vào đó, nó quay lại điểm bắt đầu của vòng lặp, bỏ qua bất kỳ câu lệnh nào khác có trong vòng lặp
>>> for name in names:
.. if name != "Nina":
.. continue
.. print[f"Hello, {name}"]
...
Hello, Nina
continue
tiếp tục đến đầu vòng lặp
break
và continue
được hình dung
Điều gì xảy ra khi chúng tôi chạy mã từ tệp Python này?
# Python file names.py
names = ["Jimmy", "Rose", "Max", "Nina", "Phillip"]
for name in names:
if len[name] != 4:
continue
print[f"Hello, {name}"]
if name == "Nina":
break
print["Done!"]
Kết quả
Hãy xem bạn có đoán được kết quả không trước khi mở rộng phần này
[env] $ python names.py
Hello, Rose
Hello, Nina
Done!
Sử dụng break
và continue
trong các vòng lặp lồng nhau
Hãy nhớ rằng, break
và continue
chỉ hoạt động cho vòng lặp hiện tại. Mặc dù tôi đã lập trình Python trong nhiều năm, nhưng đây là thứ vẫn khiến tôi gặp khó khăn
>>> names = ["Rose", "Max", "Nina"]
>>> target_letter = 'x'
>>> for name in names:
.. print[f"{name} in outer loop"]
.. for char in name:
.. if char == target_letter:
.. print[f"Found {name} with letter: {target_letter}"]
.. print["breaking out of inner loop"]
.. break
...
Rose in outer loop
Max in outer loop
Found Max with letter: x
breaking out of inner loop
Nina in outer loop
>>>
break
trong vòng lặp bên trong chỉ thoát ra khỏi vòng lặp bên trong. Vòng lặp bên ngoài tiếp tục chạy
Kiểm soát vòng lặp trong # Python file names.py
names = ["Jimmy", "Rose", "Max", "Nina", "Phillip"]
for name in names:
if len[name] != 4:
continue
print[f"Hello, {name}"]
if name == "Nina":
break
print["Done!"]
2 vòng lặp
# Python file names.py
names = ["Jimmy", "Rose", "Max", "Nina", "Phillip"]
for name in names:
if len[name] != 4:
continue
print[f"Hello, {name}"]
if name == "Nina":
break
print["Done!"]
Bạn cũng có thể sử dụng break
và continue
trong
# Python file names.py
names = ["Jimmy", "Rose", "Max", "Nina", "Phillip"]
for name in names:
if len[name] != 4:
continue
print[f"Hello, {name}"]
if name == "Nina":
break
print["Done!"]
2 vòng lặp. Một tình huống phổ biến là chạy một vòng lặp mãi mãi cho đến khi một điều kiện nhất định được đáp ứng>>> count = 0
>>> while True:
.. count += 1
.. if count == 5:
.. print["Count reached"]
.. break
...
Count reached
Hãy cẩn thận rằng điều kiện của bạn cuối cùng sẽ được đáp ứng, nếu không chương trình của bạn sẽ bị mắc kẹt trong một vòng lặp vô hạn. Để sử dụng sản xuất, tốt hơn là sử dụng lập trình không đồng bộ
Vòng lặp trong lập trình cho phép chúng ta thực thi liên tục một tập lệnh/khối mã lệnh cho đến khi thỏa mãn một điều kiện nào đó
Chúng ta cũng có thể sử dụng các vòng lặp để lặp lại một tập hợp dữ liệu và thực hiện thao tác tương tự trên từng mục trong tập dữ liệu
________số 8_______Trên đây là vòng lặp Python
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
2 lặp qua danh sách tên và in tất cả tênTrong trường hợp chúng ta muốn dừng lặp lại trước khi đến mục cuối cùng hoặc trước khi một điều kiện nhất định được đáp ứng, chúng ta có thể sử dụng câu lệnh
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3. Câu lệnh names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 sẽ có điều kiện riêng của nó – điều này cho nó biết khi nào thì "ngắt" vòng lặpTrong bài viết này, trước tiên chúng ta sẽ xem cách sử dụng câu lệnh
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 trong các vòng lặp names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
2 và names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
7. Sau đó, chúng ta sẽ xem xét một số phương pháp mà chúng ta có thể sử dụng để phá vỡ các vòng lặp lồng nhau trong PythonLàm thế nào để bạn viết một tuyên bố names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 bằng Python?
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
Bạn xác định câu lệnh
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 trong vòng lặp mà bạn muốn nó kết thúc. Trong phần này, chúng ta sẽ xem cách sử dụng câu lệnh names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 trong các vòng lặp names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
2 và names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
7Cách sử dụng câu lệnh names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 trong vòng lặp names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
2
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
Đây là một ví dụ
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
Trong đoạn mã trên, chúng tôi đang in một danh sách tên
for i in names:
print[i]
Sau đó, chúng tôi đã tạo một điều kiện mới để kiểm tra khi biến
for i in names:
print[i]
5 có tên bằng "Jane". Khi điều kiện đó được đáp ứng, vòng lặp được yêu cầu dừng lại. Nó dừng vì câu lệnh names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 dừng vòng lặp khi for i in names:
print[i]
5 là "Jane"if i == "Jane":
break
Điều này cũng giống như nói. "in tất cả các tên và dừng lại khi bạn đến chỗ Jane". Vì vậy, trong bảng điều khiển của chúng tôi, trong số ba tên —
for i in names:
print[i]
8 – chỉ có "John" và "Jane" được inChúng ta cũng có thể làm điều này với những con số
for i in range[10]:
print[i]
Đoạn mã trên in ra một dãy số từ 0 đến 9. Nhưng chúng ta có thể ngăn vòng lặp này in tất cả các số – thay vào đó chúng ta có thể dừng ở một số cụ thể. Đây là cách
for i in range[10]:
print[i]
if i == 5:
break
Bây giờ các vòng dừng lại ở 5. Vì vậy, chúng tôi sẽ chỉ thấy 0, 1, 2, 3, 4 và 5 trong bảng điều khiển
Cách sử dụng câu lệnh names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 trong vòng lặp names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
7
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
Ví dụ trong phần này sẽ tương tự như ví dụ của phần trước. Thay vào đó, chúng tôi sẽ sử dụng vòng lặp
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
7i = 0
while i < 10:
print[i]
i += 1
Đoạn mã trên in ra một dãy số từ 0 đến 9. Chúng tôi sẽ sử dụng
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 để ngừng in số khi chúng tôi đến 5i = 1
while i < 10:
print[i]
if i == 5:
break
i += 1
Giống như chúng ta đã làm trong phần trước, chúng ta đã tạo một điều kiện mới.
if i == "Jane":
break
3 và khi điều kiện này được đáp ứng, vòng lặp sẽ kết thúc thay vì in tất cả đến 9Cách sử dụng câu lệnh names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 trong một vòng lặp lồng nhau
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
Trong phần này, chúng ta sẽ xem cách sử dụng câu lệnh
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 trong các vòng lặp lồng nhauĐây là một vòng lặp lồng nhau trông như thế nào
for x in range[4]:
for y in range[4]:
print[x, y]
"""
0 0
0 1
0 2
0 3
1 0
1 1
1 2
1 3
2 0
2 1
2 2
2 3
3 0
3 1
3 2
3 3
"""
Các vòng lặp lồng nhau thường có thể gây nhầm lẫn cho người mới bắt đầu. Vì vậy, nếu bạn đang thắc mắc làm thế nào chúng tôi có kết quả ở trên [được nhận xét trong mã], thì đây là giải thích ngắn gọn
if i == "Jane":
break
6 sẽ cho chúng ta dãy số từ 0 đến 3Chỉ in
if i == "Jane":
break
7 sẽ cho chúng ta 0, 1, 2, 3. Nhưng chúng tôi đang lồng một dãy số khác trong vòng lặp. if i == "Jane":
break
8Những gì vòng lặp thứ hai thực hiện là nhân đôi mỗi số của
if i == "Jane":
break
9 với số lượng số nguyên mà nó có [trong phạm vi for i in range[10]:
print[i]
0]. Chúng ta có bốn số trong phạm vi for i in range[10]:
print[i]
0 – 0, 1, 2, 3Vì vậy, đối với phạm vi
if i == "Jane":
break
9, số đầu tiên là 0 và nó sẽ xuất hiện bốn lần. Mỗi lần nó xuất hiện, nó lấy một số từ dãy for i in range[10]:
print[i]
0; . 0 và 0, 0 và 1, 0 và 2, 0 và 3. Điều này áp dụng cho các số khác trong phạm vi if i == "Jane":
break
9Nếu bạn vẫn thấy điều này khó hiểu, thì hãy thử tự chạy mã. Hãy thử thay đổi phạm vi của từng vòng lặp để xem điều gì xảy ra với đầu ra
Hãy phá vỡ vòng lặp bằng cách sử dụng câu lệnh
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3for x in range[4]:
for y in range[4]:
if x == 1:
break
print[x, y]
"""
0 3
1 3
2 0
3 3
"""
Mặc dù vòng lặp trong ví dụ trên dường như đã dừng, nhưng khi xem xét kỹ hơn kết quả đầu ra [đã nhận xét ở trên], bạn sẽ nhận ra rằng vòng lặp bên ngoài vẫn đang in ra tất cả các giá trị của nó, điều không như ý muốn
Vì vậy, chỉ sử dụng câu lệnh
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 không thực sự phá vỡ một vòng lặp lồng nhau. Hãy xem một số cách giải quyết để đạt được kết quả mong muốn của chúng tôiSử dụng biến Boolean
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
0Trong ví dụ trên, chúng tôi đang sử dụng một biến boolean có giá trị ban đầu là
for i in range[10]:
print[i]
7. Khi vòng lặp đến điểm dừng đã định, chúng tôi đặt giá trị boolean này là for i in range[10]:
print[i]
8, nhưng đó không phải là tất cả. Chúng tôi kiểm tra khi biến là for i in range[10]:
print[i]
8 và sau đó gán câu lệnh names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3Sử dụng Tuyên bố Break hai lần
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
1Trong ví dụ này, chúng tôi xác định hai câu lệnh
for i in range[10]:
print[i]
if i == 5:
break
1 – cả hai đều trả về câu lệnh names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 để buộc vòng lặp bị ngắtMặc dù các giải pháp thay thế này có thể đã kết thúc vòng lặp tại một trường hợp nhất định, nhưng bạn sẽ nhận thấy rằng giá trị của vòng lặp bên trong vẫn giữ nguyên mỗi khi vòng lặp bị ngắt
Điều này không có nghĩa là các vòng lặp lồng nhau là xấu. Nhưng hãy chắc chắn rằng bạn thực sự cần chúng trước khi thực hiện chúng trong logic của bạn
Phần kết luận
Trong bài viết này, chúng ta đã biết cách sử dụng câu lệnh
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 để kết thúc một vòng lặp trước khi điều kiện ban đầu của vòng lặp được đáp ứng hoặc trước khi hoàn tất việc lặp lại các mục trong tập dữ liệuChúng tôi đã thấy một số ví dụ về cách bạn có thể sử dụng câu lệnh
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 trong cả hai vòng lặp names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
2 và names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
7Cuối cùng, chúng ta đã nói về các vòng lặp lồng nhau. Chúng tôi phát hiện ra rằng câu lệnh
names = ["John", "Jane", "Doe"]
for i in names:
print[i]
if i == "Jane":
break
3 không thực sự dừng vòng lặp. Điều này khiến chúng ta thấy một số ví dụ về một số phương pháp mà chúng ta có thể sử dụng để phá vỡ một vòng lặp lồng nhau trong PythonMã hóa vui vẻ
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
Tiểu sử của tác giả này có thể được tìm thấy trong các bài viết của ông
Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn
Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu