Continue (Tiếp tục)
Nhảy sang lượt kế của vòng lặp bao quanh.
Mục đích
Bỏ phần còn lại của lượt hiện tại và bắt đầu lượt kế. Vòng vẫn chạy tiếp; chỉ việc còn lại của lượt này bị bỏ.
Khi nào dùng
- Mục này không liên quan — bỏ và sang mục kế.
- Tiền điều kiện của lượt này trượt, nhưng vòng nên tiếp tục.
- Lọc: chỉ xử lý mục khớp, bỏ phần còn lại.
Khi nào không dùng
- Kết thúc vòng — dùng Break.
- Kết thúc flow — dùng Return hay Stop.
- Ngoài vòng lặp — Continue chỉ có nghĩa trong vùng lặp.
Điều kiện
Continue phải nằm trong vùng lặp. Nó thuộc vòng bao trong cùng, phân giải lúc biên dịch.
Cách nó chạy
Continue không mang edge ra do người nối. Trình biên dịch nối lại nó về đỉnh vòng, nơi kiểm điều kiện lượt kế diễn ra.
Bỏ thân không bỏ lượt. Vòng Count max 10 mà continue mọi lượt vẫn thực hiện mười lượt rồi thoát. Continue tiết kiệm việc của thân, không tiết kiệm ngân sách lượt.
Thiết lập
| Thiết lập | Kiểu | Khoảng | Ghi chú |
|---|---|---|---|
| Label | string | ≤ 120 ký tự | Nhãn hiển thị tùy chọn; không hiệu ứng runtime |
Continue không có thiết lập chức năng — hành vi hoàn toàn theo vị trí.
Port
| Port | Ghi chú |
|---|---|
| Success | Có trên node, nhưng không do người nối — trình biên dịch sở hữu |
| Fatal | Lỗi cấu hình. Không bao giờ được đi |
Continue không có port bắt buộc. Nối edge vào nó; đừng nối ra.
Ví d ụ cơ bản
Bỏ mục không đạt chuẩn:
- If → False → Continue
Ví dụ thực tế — lọc danh sách
Chú ý Continue và Break làm hai việc khác nhau trong cùng vòng: Continue bỏ mục này, Break dừng vì hết mục.
Ví dụ nâng cao — mệnh đề gác
Continue cho phép viết thân vòng thành chuỗi thoát-sớm thay vì lồng sâu:
Mỗi phép gác là kiểm phẳng với Continue riêng, thay vì ba tầng If lồng nhau. Dễ đọc và dễ mở rộng hơn hẳn.
Best practices
- Dùng Continue cho mệnh đề gác. Gác phẳng thắng điều kiện lồng.
- Đếm thứ thực xử lý bằng biến riêng — lượt và mục xử lý là hai con số khác nhau.
- Dán nhãn Continue với lý do bỏ.
- Nhớ lượt vẫn tính. Cỡ Max iterations theo số mục sẽ xem xét, không phải số sẽ xử lý.
- Cặp với Break — Continue cho "bỏ cái này", Break cho "dừng hẳn".
Ghi chú hiệu năng
- Continue miễn phí, và nó tiết kiệm phần thân còn lại của lượt đó.
- Nó không tiết kiệm lượt. Vòng mà đa số lượt continue sớm vẫn trả chi phí mỗi-lượt và các phép gác.
- Gần như mọi lượt bị bỏ nghĩa là bộ lọc đặt sai chỗ — lọc trước vòng khi có thể.
Ghi chú bộ nhớ
- Không cấp phát. Lượt bị bỏ vẫn ghi kết quả cho các node đã chạy, nên
nodeResultsphình theo lượt bất kể.
Lỗi thường gặp
| Lỗi | Hậu quả | Cách sửa |
|---|---|---|
| Kỳ vọng Continue kết thúc vòng | Vòng chạy tiếp | Break |
| Kỳ vọng lượt bỏ không tính | Chúng có tính | Cỡ Max iterations tương xứng |
| Nối edge ra khỏi Continue | Không phải cách nó chạy | Chỉ nối vào |
| Continue nhầm vòng lồng | Áp cho vòng trong cùng | Kiểm vùng |
| Đếm lượt làm mục xử lý | Tổng sai | Bộ đếm riêng |
Khắc phục sự cố
Vòng thoát sớm hơn dự kiến. Lượt continue vẫn tiêu ngân sách lượt. Nâng Max iterations.
Continue hành xử như Break. Kiểm nó nằm đúng vùng lặp bạn nghĩ.
Không gì được xử lý bao giờ. Điều kiện gác bị đảo — kiểm port nào dẫn tới Continue.
FAQ
Continue có reset bộ đếm vòng? Không. Nó sang lượt kế bình thường.
Lượt continue có tính vào Max iterations? Có.
Dùng Continue ngoài vòng được không? Không.
Continue có bỏ tổng hợp Loop End của lượt đó? Lượt không sinh kết quả thân để gom, nên không gì được thu cho nó.
Node liên quan
- Loop — vùng Continue thuộc về
- Break — dừng hẳn vòng
- If — phép gác quyết bỏ
- Variable — đếm mục xử lý riêng