HomeLập trìnhPythonBreak trong Python...

Break trong Python – Lồng nhau để ngắt vòng lặp nếu đáp ứng điều kiện Ví dụ


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ã cho đến khi thỏa mãn một điều kiện nhất định.

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.

names = ["John", "Jane", "Doe"]
for i in names:
    print(i)
    
"""
John
Jane
Doe
"""

Trên đây là một con trăn for vòng lặp lặp qua danh sách tên và in tất cả tên.

Trong các tình huống mà chúng tôi 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 tôi có thể sử dụng break bản tường trình. Các break câu lệnh 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 break tuyên bố trong forwhile vòng lặp. 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 break Tuyên bố trong Python?

Bạn xác định break câu lệnh 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 break tuyên bố trong forwhile vòng lặp.

Làm thế nào để sử dụng break Tuyên bố trong một for Vòng

Đâ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 các 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 i biến 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 lại vì break câu lệnh dừng vòng lặp khi i là “Jane”:

if i == "Jane":
        break

Điều này giống như nói: “in tất cả các tên và dừng lại khi bạn đến Jane”. Vì vậy, trong bảng điều khiển của chúng tôi, trong số ba tên — ["John", "Jane", "Doe"] – chỉ “John” và “Jane” sẽ được in.

Đọc thêm  đối tượng builtin_function_or_method không thể đăng ký được Lỗi Python [SOLVED]

Chúng ta cũng có thể làm điều này với các 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 lặp dừng ở 5. Vì vậy, chúng ta sẽ chỉ thấy 0, 1, 2, 3, 4 và 5 trong bảng điều khiển.

Làm thế nào để sử dụng break Tuyên bố trong một while Vòng

Ví dụ trong phần này sẽ tương tự như phần trước. Chúng tôi sẽ sử dụng một while vòng lặp thay thế.

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 ta sẽ sử dụng break ngừng in số khi chúng ta đế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 == 5 và khi điều kiện này được đáp ứng, vòng lặp sẽ kết thúc thay vì in đến 9.

Làm thế nào để sử dụng break Tuyên bố 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 break câu lệnh trong các vòng lặp lồng nhau.

Đây là giao diện của một vòng lặp lồng nhau:

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à lời giải thích ngắn gọn:

Đọc thêm  Loại biến in trong Python – Cách lấy loại biến

range(4) sẽ cho ta dãy số từ 0 đến 3.

Chỉ in for x in range(4): sẽ cho chúng ta 0, 1, 2, 3. Nhưng chúng ta đang lồng một dãy số khác trong vòng lặp: for y in range(4):

Những gì vòng lặp thứ hai làm là nhân đôi từng số x bởi số lượng các số nguyên mà nó có (trong y phạm vi). Chúng tôi có bốn số trong y phạm vi – 0, 1, 2, 3.

Vì vậy đối với x phạm vi, 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ừ y phạm vi; đó là: 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 x phạm vi.

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 break bản tường trình:

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 được dự định.

Vì vậy, chỉ cần sử dụng break tuyên bố 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

force_break_loop = False
for x in range(5):
    for y in range(5):
        if x == 2:
            force_break_loop = True
            break
    if force_break_loop:
        break
    print(x, y)

"""
0 4
1 4
"""

Trong ví dụ trên, chúng tôi đang sử dụng một biến boolean có giá trị ban đầu là False. Khi vòng lặp đến điểm ngắt dự định, chúng tôi đặt giá trị boolean này là True, nhưng đó không phải là tất cả. Chúng tôi kiểm tra khi biến là True và sau đó chỉ định break bản tường trình.

Đọc thêm  Liệt kê mức độ hiểu trong Python

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

for x in range(5):
    for y in range(5):
        if x == 3:
            break
    if x == 3:
        break
    print(x, y)
    
"""
0 4
1 4
2 4
"""

Trong ví dụ này, chúng tôi định nghĩa hai if câu lệnh – cả hai đều trả về một break tuyên bố buộc vòng lặp phải phá vỡ.

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 đảm bảo rằng bạn thực sự cần chúng trước khi triển khai chúng trong logic của mình.

Phần kết luận

Trong bài viết này, chúng ta đã thấy cách sử dụng break câu lệnh để 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 break tuyên bố trong cả hai forwhile vòng lặp.

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 một break tuyên bố không thực sự dừng vòng lặp. Điều này khiến chúng tôi thấy một số ví dụ về một số phương pháp mà chúng tôi có thể sử dụng để phá vỡ vòng lặp lồng nhau trong Python.

Chúc mừng mã hóa!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status