Control / flow · All operations

Repeat until a condition is met

A variant of Branch or loop

Run a set of steps a fixed number of times, or again and again until a condition is met.

Status

In arcform

Not built yet

arcform does not do this yet; it would live in how a Protocol runs. Its place on the roadmap

What other tools call it

Meridian's classification; an independent blind rating agreed on 95.7% of 324 rows (variant, version 3).

Apache Hop (2)
  • End repeatread 2026-09-27

    Signal the enclosing Repeat action to stop looping

  • Repeatread 2026-09-27

    Run a pipeline or workflow repeatedly until a variable or End repeat stops it

Azure Data Factory (1)
  • Until Activityread 2026-09-27

    Do-until loop: repeat activities until a condition is true or a time-out passes

Duckle (1)
  • Iterateread 2026-09-25

    run a referenced pipeline N times

EasyMorph (1)
  • Repeatread 2026-09-27

    Run another module or project repeatedly until or while its output is empty

KNIME Analytics Platform (5)
  • Counting Loop Startread 2026-09-27

    Open a loop that runs a fixed number of times

  • Generic Loop Startread 2026-09-27

    Open a loop with no built-in end condition, closed by a variable-condition loop end

  • Recursive Loop Endread 2026-09-27

    Close a recursive loop, feeding its input back to the loop start for the next iteration

  • Recursive Loop Startread 2026-09-27

    Open a recursive loop that receives tables back from the loop end each iteration

  • Close a loop when a condition on a flow variable is met

RapidMiner Studio (5)
  • Loopread 2026-09-27

    Run a subprocess a fixed number of times, optionally in parallel

  • Loop (While)read 2026-09-27

    Repeat a subprocess while a condition holds

  • Loop Untilread 2026-09-27

    Repeat a subprocess until a performance or iteration condition is met

  • Loop and Averageread 2026-09-27

    Run a subprocess n times and average the resulting performance values

  • Loop and Deliver Bestread 2026-09-27

    Run a subprocess n times and return the results of the best-performing iteration

Talend (2)
  • tInfiniteLoopread 2026-09-27

    Run a task in an endless loop

  • tLoopread 2026-09-27

    Run a task or a Job repeatedly in a loop

VisiData (4)
  • repeat-inputread 2026-09-23

    Rerun the previous modifying command with the same input

  • repeat-input-nread 2026-09-23

    Rerun the previous command with its input N times

  • repeat-lastread 2026-09-23

    Rerun the most recent command, prompting for fresh input

  • replay-stopread 2026-09-23

    Cancel the replay in progress

Background

A conditional loop is a loop that decides whether to stop based on a logical condition.[1] In most programming languages, a conditional loop checks its condition once for every execution of its body, not the moment the condition changes.[1] In Azure Data Factory, the Until activity runs a set of activities in a loop until its condition evaluates to true, like a do-until loop.[2]

When to use it

EasyMorph's Repeat action can be used, for instance, for reading paged data from web APIs, polling a web API until an external task is complete, and repeating a calculation until its result no longer changes.[3] A loop that has no possibility of terminating is called an infinite loop.[1] No general algorithm can decide whether a particular loop is infinite.[1]

EasyMorph's Repeat action can fail once its number of iterations exceeds a set value, which stops a malformed loop from running forever.[3] KNIME's Recursive Loop End node has a maximal number of iterations, which prevents endless loops.[4] An Azure Data Factory Until activity has a timeout that defaults to seven days and can be at most 90 days.[2] If an inner activity fails, an Azure Data Factory Until activity does not stop.[2] Give every conditional loop a ceiling on iterations or on time, and treat reaching it as a failure to look into, not as success. (Meridian's view)

The method

A pre-test loop checks its condition before running the body, and many programming languages call it a while loop.[1] A post-test loop checks its condition after running the body, and is sometimes called a do-while loop.[1] If a loop's test is at the start the body may be skipped completely, and if it is at the end the body is always executed at least once.[5] Azure Data Factory evaluates an Until activity's expression after all its child activities have run, and runs them again if the expression is false.[2]

KNIME's Recursive Loop End passes its tables back to the Recursive Loop Start, which from the second iteration on outputs the data it receives from the loop end.[6] KNIME's Recursive Loop End stops the loop when one of the tables it passes back falls below a set minimal number of rows.[4] In RapidMiner's Loop operator, using each iteration's output as the next iteration's input limits the loop to a single thread.[7]

Compared with the alternatives

In most functional programming languages, recursion is used instead of traditional loops, because variables are immutable and a loop's increment step cannot occur.[1]