Control statements

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

If[condposneg]
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.
For[starttestincrbody]
evaluates start, and then iteratively body and incr as long as test evaluates to True.
While[testbody]
evaluates body as long as test evaluates to True.
Nest[fexprn]
returns an expression with f applied n times to expr.
NestWhile[fexprtest]
applies a function f repeatedly on an expression expr, until applying test on the result no longer yields True.
FixedPoint[fexpr]
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.