Control statements

Like most programming languages, Mathics has common control statements for conditions, loops, etc.:

returns pos if cond evaluates to True, and neg if it evaluates to False.
Which[cond1expr1cond2expr2, ...]
yields expr1 if cond1 evaluates to True, expr2 if cond2 evaluates to True, etc.
Do[expr, {imax}]
evaluates expr max times, substituting i in expr with values from 1 to max.
evaluates start, and then iteratively body and incr as long as test evaluates to True.
evaluates body as long as test evaluates to True.
returns an expression with f applied n times to expr.
applies a function f repeatedly on an expression expr, until applying test on the result no longer yields True.
starting with expr, repeatedly applies f until the result no longer changes.

Compound statements can be entered with ;. The result of a compound expression is its last part or Null if it ends with a ;.

Inside For, While, and Do loops, Break[] exits the loop and Continue[] continues to the next iteration.