Tiếp tục không hoạt động trong Python

Câu lệnh continue trong Python là một trong những câu lệnh vòng lặp điều khiển luồng của vòng lặp. Cụ thể hơn, câu lệnh continue bỏ qua “phần còn lại của vòng lặp” và chuyển sang phần đầu của lần lặp tiếp theo

Không giống như lệnh break, lệnh continue không thoát khỏi vòng lặp

Ví dụ: để in các số lẻ, hãy sử dụng tiếp tục bỏ qua in các số chẵn

n = 0
while n < 10:
    n += 1
    if n % 2 == 0:
        continue
    print[n]

Vòng lặp này bỏ qua chức năng in khi gặp số chẵn [số chia hết cho 2]

1
3
5
7
9

Dưới đây là minh họa về cách hoạt động của đoạn mã trên khi n chẵn

Tiếp tục tuyên bố chi tiết hơn

Trong Python, câu lệnh continue nhảy ra khỏi lần lặp hiện tại của một vòng lặp để bắt đầu lần lặp tiếp theo

Trường hợp sử dụng điển hình cho câu lệnh continue là kiểm tra xem một điều kiện có được đáp ứng hay không và bỏ qua phần còn lại của vòng lặp dựa trên điều kiện đó

Sử dụng câu lệnh continue đôi khi có thể là một phần quan trọng để làm cho thuật toán hoạt động. Đôi khi nó chỉ tiết kiệm tài nguyên vì nó ngăn chạy mã thừa

Trong Python, câu lệnh continue có thể được sử dụng với cả vòng lặp for và while

while condition:
    if other_condition:
        continue

for elem in iterable:
    if condition:
        continue

Chẳng hạn, bạn có thể sử dụng câu lệnh continue để bỏ qua việc in các số chẵn

n = 0
while n < 10:
    n += 1
    if n % 2 == 0:
        continue
    print[n]

đầu ra

1
3
5
7
9

Tiếp tục so với If-Else trong Python

Câu lệnh continue hoạt động giống như câu lệnh if-else. Sử dụng câu lệnh continue về cơ bản giống như đặt mã vào khối if-else

Trong các trường hợp đơn giản, tốt hơn hết là sử dụng câu lệnh if-else thay vì câu lệnh continue

Chẳng hạn, hãy lặp qua các số từ 1 đến 10 và in loại số lẻ của các số

Đây là cách tiếp cận tiếp tục

for num in range[1, 10]:
    if num % 2 == 0:
        print["Even number: ", num]
        continue
    print["Odd number: ", num]

đầu ra

Odd number:  1
Even number:  2
Odd number:  3
Even number:  4
Odd number:  5
Even number:  6
Odd number:  7
Even number:  8
Odd number:  9

Sau đó, hãy chuyển đổi cách tiếp cận này thành câu lệnh if-else

for num in range[1, 10]:
    if num % 2 == 0:
        print["Even number: ", num]
    else:
        print["Odd number: ", num]

đầu ra

Odd number:  1
Even number:  2
Odd number:  3
Even number:  4
Odd number:  5
Even number:  6
Odd number:  7
Even number:  8
Odd number:  9

Như bạn có thể thấy, cách tiếp cận thứ hai cung cấp một cách rõ ràng hơn để thể hiện ý định của bạn. Bằng cách nhìn vào đoạn mã này, ngay lập tức rõ ràng nó làm gì. Tuy nhiên, nếu bạn nhìn vào cách tiếp cận cũ với các câu lệnh tiếp tục, bạn cần phải vò đầu bứt tai một chút trước khi xem chuyện gì đang xảy ra

Đây là một ví dụ tuyệt vời khi bạn có thể sử dụng câu lệnh if-else thay vì sử dụng câu lệnh continue

Ngoài ra, nếu bạn xem ví dụ trước về việc in các số lẻ từ một dãy

n = 0
while n < 10:
    n += 1
    if n % 2 == 0:
        continue
    print[n]

Bạn thấy việc sử dụng if-check ở đây cũng tốt hơn, thay vì trộn nó với câu lệnh continue

1
3
5
7
9
0

Nhưng bây giờ bạn có thể tự hỏi tại sao bạn nên sử dụng tiếp tục nếu nó chỉ làm cho mã khó đọc hơn. Hãy xem một số trường hợp sử dụng tốt cho câu lệnh continue

Khi sử dụng Tiếp tục Python

Như đã nêu trước đó, bạn có thể thay thế câu lệnh continue bằng câu lệnh if-else

Ví dụ, đoạn mã này

1
3
5
7
9
1

Làm tương tự như cái này

1
3
5
7
9
2

Trong các trường hợp đơn giản, sử dụng if-else thay vì tiếp tục là một ý tưởng hay. Nhưng chắc chắn cũng có một số trường hợp sử dụng cho câu lệnh continue

Ví dụ

  1. Bạn có thể tránh các câu lệnh if-else lồng nhau bằng cách sử dụng continue
  2. Continue có thể giúp bạn xử lý ngoại lệ trong vòng lặp for

Hãy xem ví dụ về cả hai

1. Tránh các câu lệnh If-Else lồng nhau trong một vòng lặp với Continue trong Python

Hãy tưởng tượng bạn có nhiều điều kiện mà bạn muốn bỏ qua vòng lặp. Nếu bạn chỉ dựa vào các câu lệnh if-else, mã của bạn sẽ hỗn loạn theo hình kim tự tháp

1
3
5
7
9
3

Đây là cơn ác mộng của mọi nhà phát triển. Một mớ hỗn độn if-else lồng nhau không thể quản lý

Tuy nhiên, bạn có thể làm cho đoạn mã trên sạch hơn và đẹp hơn bằng cách sử dụng câu lệnh continue

1
3
5
7
9
4

Bây giờ, thay vì có cấu trúc lồng nhau của các câu lệnh if-else, bạn có cấu trúc phẳng chỉ gồm các câu lệnh if. Điều này có nghĩa là mã dễ hiểu hơn và dễ bảo trì hơn—nhờ câu lệnh continue

2. Tiếp tục trong phần Xử lý lỗi—Thử, Ngoại trừ, Tiếp tục

Nếu bạn cần xử lý các ngoại lệ trong một vòng lặp, hãy sử dụng câu lệnh continue để bỏ qua “phần còn lại của vòng lặp”

Ví dụ: hãy xem đoạn mã xử lý lỗi trong vòng lặp này

1
3
5
7
9
5

Bây giờ vòng lặp thực thi chức năng in cuối cùng bất kể có ném ngoại lệ hay không

1
3
5
7
9
6

Để tránh điều này, hãy sử dụng câu lệnh continue trong khối except. Điều này bỏ qua phần còn lại của vòng lặp khi một ngoại lệ xảy ra

1
3
5
7
9
7

Bây giờ vòng lặp bỏ qua chức năng in cuối cùng

1
3
5
7
9
8

Điều này hữu ích nếu chức năng in lần cuối là thứ bạn không nên vô tình chạy khi xảy ra lỗi

Phần kết luận

Hôm nay bạn đã học cách sử dụng câu lệnh continue trong Python

Tóm lại, câu lệnh continue trong Python bỏ qua “phần còn lại của vòng lặp” và bắt đầu một phép lặp. Điều này hữu ích nếu phần còn lại của vòng lặp bao gồm mã không cần thiết

Ví dụ: bạn có thể bỏ qua việc in các số chẵn và chỉ in các số lẻ bằng cách

n = 0
while n < 10:
    n += 1
    if n % 2 == 0:
        continue
    print[n]

Ở đây vòng lặp bỏ qua chức năng in cuối cùng nếu gặp số chẵn

Tuy nhiên, câu lệnh if-else thường tốt hơn là sử dụng câu lệnh if với câu lệnh continue. Tuy nhiên, với nhiều điều kiện, câu lệnh continue sẽ ngăn chặn các khối if-else lồng nhau không thể quản lý được

Tại sao Python tiếp tục không hoạt động?

Lỗi cú pháp. lỗi vòng lặp continue không đúng cách xảy ra khi bạn cố gắng sử dụng câu lệnh continue bên ngoài vòng lặp for hoặc vòng lặp while . Để khắc phục lỗi này, hãy đặt bất kỳ câu lệnh continue nào trong mã của bạn vào trong một vòng lặp.

Tiếp tục hoạt động nếu Python?

Bạn có thể sử dụng câu lệnh continue trong Python để bỏ qua một phần của vòng lặp khi thỏa mãn điều kiện. Sau đó, phần còn lại của vòng lặp sẽ tiếp tục chạy. Bạn sử dụng câu lệnh continue trong các vòng lặp, thường là sau câu lệnh if .

Tiếp tục có cần thiết trong Python không?

Bạn không bỏ lỡ điều gì - trong ví dụ đơn giản của bạn, điều đó hoàn toàn không cần thiết . Trong một ví dụ phức tạp hơn nhiều [hoặc trong mã được tổ chức kém hơn], nó có thể hữu ích [ví dụ: bạn có thể xóa mệnh đề "khác" nếu bạn tiếp tục ở đó].

Python vượt qua có giống như tiếp tục không?

Có sự khác biệt đáng kể giữa vượt qua và tiếp tục và chúng không thể hoán đổi cho nhau . continue buộc vòng lặp bắt đầu ở lần lặp tiếp theo, trong khi pass có nghĩa là "không có mã nào để thực thi ở đây" và nó sẽ tiếp tục qua phần còn lại của thân vòng lặp.

Chủ Đề