Phá vỡ vòng lặp bên ngoài của Python?

breakcontinue 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

breakcontinue đượ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 breakcontinue trong các vòng lặp lồng nhau

Hãy nhớ rằng, breakcontinue 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

Bạn cũng có thể sử dụng breakcontinue 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ên

Trong 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ặp

Trong 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 Python

Là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?

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
7

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
2

Đâ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 in

Chú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

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
7

i = 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 5

i = 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 9

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 một vòng lặp lồng nhau

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  3

Chỉ 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
8

Nhữ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, 3

Vì 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
9

Nế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
3

for 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ôi

Sử dụng biến Boolean

names = ["John", "Jane", "Doe"]
for i in names:
    print[i]
    if i == "Jane":
        break
0

Trong 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
3

Sử dụng Tuyên bố Break hai lần

names = ["John", "Jane", "Doe"]
for i in names:
    print[i]
    if i == "Jane":
        break
1

Trong 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ắt

Mặ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ệu

Chú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
7

Cuố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 Python

Mã hóa vui vẻ

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

Ihechikara Vincent Abba

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

Liệu Break Break ra khỏi vòng lặp bên ngoài?

BREAK sẽ chỉ thoát ra khỏi vòng lặp mà nó được gọi . Như một giải pháp thay thế, bạn có thể sử dụng một biến cờ cùng với BREAK để thoát ra khỏi các vòng lặp lồng nhau.

Break có thoát ra khỏi tất cả các vòng lặp trong Python không?

Bạn có thể sử dụng break trong Python trong tất cả các vòng lặp. while, for và lồng nhau . Nếu bạn đang sử dụng nó trong các vòng lặp lồng nhau, nó sẽ kết thúc vòng lặp trong cùng nơi bạn đã sử dụng nó và quyền điều khiển chương trình sẽ chuyển sang vòng lặp bên ngoài.

Phá vỡ chỉ phá vỡ vòng lặp bên trong Python?

Sử dụng break và continue trong các vòng lặp lồng nhau. break trong vòng lặp bên trong chỉ ngắ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.

Phá vỡ có giúp bạn thoát khỏi tất cả các vòng lặp không?

Sử dụng ngắt trong vòng lặp lồng nhau . Do đó, nếu ngắt được đặt ở vòng lặp bên trong, vòng lặp bên ngoài vẫn tiếp tục. Tuy nhiên, nếu ngắt được đặt ở vòng lặp bên ngoài, tất cả các vòng lặp sẽ dừng lại .

Chủ Đề