{continue} abandons what is left of the current pass of a loop - everything of the loop's content after the tag is dropped - and the loop carries on with its next row, like PHP's continue. It is usually written inside an {if}, to skip the rows that do not qualify. The rows are untouched; that is the difference with {break}, which empties them.

Without a parameter it works on the nearest enclosing loop: the data tag, {sequence}, {while} or other loop the tag stands in, past an {if}, a {case} and any other level that renders once for the row - an {ifchanged}, a {guest}, a snippet. With a name - {continue 'orders'}, the tag's name or its name= - it reaches an outer loop: the inner loop is abandoned with the rest of the outer pass. A level number or a negative offset (-2: two levels up) picks the level by position.

Under the strict syntax check a name that no enclosing level has, or an offset past the page, is an error rather than a silent fall-back to the nearest loop; so is loop control with no loop around it. To skip rows that can be told apart by their fields alone, the where option on the loop is simpler.