Chuyển tới nội dung chính

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.

Continue vẫn tính là một lượt

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ậpKiểuKhoảngGhi chú
Labelstring≤ 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

PortGhi chú
SuccessCó trên node, nhưng không do người nối — trình biên dịch sở hữu
FatalLỗ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 đó.
  • 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 nodeResults phình theo lượt bất kể.

Lỗi thường gặp

LỗiHậu quảCách sửa
Kỳ vọng Continue kết thúc vòngVòng chạy tiếpBreak
Kỳ vọng lượt bỏ không tínhChúng có tínhCỡ Max iterations tương xứng
Nối edge ra khỏi ContinueKhông phải cách nó chạyChỉ nối vào
Continue nhầm vòng lồngÁp cho vòng trong cùngKiểm vùng
Đếm lượt làm mục xử lýTổng saiBộ đế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

Trang liên quan