Mathematica では,特定条件が満たされるときだけに特定の式を評価させるための指定を行うことができるようになっている.これは,次に示す方法で条件子を設定することで行う.
Mathematica 言語によるプログラムの記述で分枝制御を行うには基本的に2つの方法を使う.その1つは,単一定義を作り,右辺に
If関数による選択肢を与える方法で,2つ目は,複数の定義を作り,各定義を適切な
/;条件で制御する方法である.複数の定義を使った方が,プログラムを読みやすくでき,変更も簡単になる.
選択肢が2つありどちらかを選択するには関数
Ifを使うことができる.しかし,選択肢がさらにある場合もある.そのようなときの方法として,ネストさせた複数の
If関数を使うことが考えられる.しかし,普通は,
Whichや
Switch等の関数を使う方がよい.
これは重要なことだが,
Mathematica のようなシンボル式の処理システムでは,条件によっては
Trueにも,
Falseにもならないことがある.したがって,例えば,条件
x
yでは,
xと
yの両方の数値的な値が判明しない限り
True,
Falseの判定は付かない.
lhs
rhsと
lhs
rhsの間には次の大きな相違点がある.前者は常に
Trueか
Falseを返すが,後者はシンボル形式のまま入力を残すことがある(
「方程式」を参照).

は式の構造を判定したいときによく使われ,

は数学的な等しさを判定したいときに使う.パターンマッチを行う
Mathematica の制御部では,実効的な

の機能が使われ,ある式が別の式に記述通りにマッチするかどうかが判断される.
条件子の設定において,
test1&&test2&&...のような組合せ条件を使う必要がよくある.この組合せ条件で重要な点は,条件項目
testi で
Falseとなるものがひとつでもあると判定結果は
Falseになる,という点である.
Mathematica は,条件項目
testi を1つずつ評価し,
testi のいずれかがも
Falseになると,その時点で判定を打ち切る.
Mathematica では,先の条件が満たされなければ後の条件は満足されないとする複数条件を並べた論理式を構築することができる.同様な処理手順がC言語のような言語でも見られるが,うまく利用すると各種プログラムを構築する上で便利になる.