Az értékadás lehetséges formái az azonnali és a késleltetett lokális értékadás, amelyet a -> és az :> jelsorozattal adunk meg, a kifejezés hatáskörében helyettesíti ki a megadott értéket, valamint a globális értékadás, amely szintén lehet azonnali (=, ez felel meg az érték szerinti értékadásnak) és késleltetett (:=, ez felel meg a referencia szerinti értékadásnak).
Sequence[ ut1, ut2, ut3, ...] formában adható meg, vagy (ut1; ut2; ut3, ...) egyszerűsített formában.
Elágazásnak a Mathematicában nem csak a hagyományos értelemben vett elágazások tekinthetők, hanem azok a függvények is, amelyek egy lista elemeiből "válogatnak" elemeket, mivel a lista elemei is lehetnek végrehajtható kifejezések.
If[ feltétel, haigaz, hahamis, haegyiksem ], hatására ha "feltétel" igaz, akkor a "haigaz" ágat értékeli ki, ha hamis, akkor a "hahamis" egybként (vagyis, ha nem eldönthető) akkor a "haegyiksem" ágat.
Which[ feltétel1, utasítás1, feltétel2, utasítás2, ...] balról jobbra értékeli ki, az ahhoz a feltételhez tartozó utasítást hajtja végre, amelyik feltétele először igaz lesz.
Switch[ kifejezés, érték1, utasítás1, érték2, utasítás2, ...] azt az utasítást értékeli ki, amelyhez tartozó értéknek balról jobbra kiértékelve "kifejezés" értéke megfelel.
Select[ lista, feltétel, limit ] "lista" elemi azokat adja egy listában, amelyek "feltétel"-nek megfelelnek, de legfeljebb az első "limit"-nyit.
Cases[ lista, mintázat ] "listá"-ból a "mintázat"-hoz illeszkedő elemeket adja egy listában.
Iterátoroknak a { változó [, alsókorlát], felsőkorlát [, lépés] } alakú kifejezéseket nevezzük. Sem az alsó korlát, sem a lépésköz megadása nem kötelező, alapértelmezett értéke 1.
Do[ kifejezés, iterátor ] "iterátor" minden értékére végrehajtja "kifejezést".
For[ változó = kezdőérték, kifejezés, növekmény, törzs ] elől tesztelő ciklus, "változó" értékét növeli a "növekmény"-nyel (ennek szintaxisa olyan, mint a C programozási nyelvben) és végrehajta "törzs"-et, amíg "kifejezés" igaz nem lesz.
While[ kifejezés, törzs ] szintén elől tesztelő, "törzs"-et hajtja végre, amíg "kifejezés" igaz nem lesz.
Ezen felül a ciklusnak tekinthetők azok a függvények, amelyek egy lista minden elemére végrehajtanak egy kifejezést, ilyen például a Map.
A Mathematicában is van feltétel nélküli ugrás, a Label[x], Goto[x] páros használatával. Ezen felül ciklusok esetén használható a Break és a Continue is.
Alprogramok létrehozására a Module, With és Block függvény használható, illetve alprogram definiálható oly módon, hogy egy szimbólum definíciójaként egy tetszőleges kifejezést adunk meg. Alprogramnak, függvénynek, illetve tetszőleges szimbólumnak lehetnek paraméterei. Egy szimbólum paramétereit [ ] zárójelpár között kell felsorolni. A zárójelek közötti szimbólumokra a kifejezésben lehet hivatkozni. Lehetőség van a paraméterek között mintázat, illetve konstans érték megadására, ugyanaz a szimbólum több különböző mintázattal is definiálható. Az aktuális paramétert a Mathematica a formális paraméterhez illeszti, ez alapján dönti el, hogy a kifejezés melyik változatát kell kiértékelni, illetve az aktuális paramétereket hogyan kell a formális paramétereknek megfeleltetni (bővebben lásd Mintázatok című szakasz). Aktuális paraméter tetszőleges kifejezés lehet.
A Module, With, Block utasítások a változók hatáskörét korlátozzák:
Module esetén az első paraméterben fel kell sorolni a lokális változókat. Ha ezek ütköznek valamilyen változóval, amelynek a hatáskörében van a Module, akkor a Mathematica az ütköző (külső blokkban lévő) változót a blokk hatáskörében átnevezi, a nevét egy $ jellel egészíti ki.
Block működése a Modulehoz hasonló, azonban más mélységben helyettesíti a változókat. A kettő különbségére álljon itt egy példa:
With első paramétere lokális konstansokból álló lista, amelyeket a második paraméterben megadott kifejezésben kihelyettesít.
Alprogramok típussal való paraméterezésére nincs külön konstrukció, a gyenge típusosság azonban számos lehetőséget ad ennek megvalósítására.