Kifejezések szekvenciáját a { e1, e2, ..., en } paranccsal adhatjuk meg. Itt minden kifejezés -kivéve az utolsót- csak egy értéket generálhat. Akár sikeres volt az egyik kiértékelés, akár sikertelen, a vezérlés a következõ kifejezésre adódik. Az utolsó kifejezés (en) annyi értéket generálhat, amennyit a környezet megenged neki. Például:
a következõ sorozatot fogja kiírni:
Ez gyakorlatilag azt mondja, hogy az e1 minden értékével értékelje ki e2-t. A következõképp működik:
Az every-kifejezés is beilleszthetõ egy másik kifejezésbe, de nem ad vissza értéket (jobban szólva &fail lesz az értéke, kivéve ha break-kel lépünk ki belõle).
Ez a más nyelvekbõl megismert while-ciklus. Abban különbözik az every-tõl, hogy minden iterációban csak egy értéket generál e1-bõl. Részletesen:
Ez a szerkezet teljesen megfelel a következõ while-os kifejezésnek:
Folyamatosan elkezdi kiértékelni az e kifejezést, de nem fog terminálni (végtelen ciklus), kivéve a break, return, suspend vagy fail utasítás használatával.
Az if-kifejezés nagyon hasonlít a más nyelvekben megismert elágazásra, az alábbi különbségeket kivéve:
Ha nem adunk meg else ágat, akkor azt úgy veszi, mintha sikertelen lenne az e3 kifejezés. Például:
(Ha x nagyobb, mint y, akkor felcseréli a két változó értékét.)
Az Icon nyelvben az utasítások végrehajtása úgynevezett cél orientált kiértékelés alapján hajtódnak végre. Szemléltetésül vegyük a következõ példát: Keressük az olyan derékszögű háromszögeket, melyeknek az oldalainak összege legalább 1000 és legfeljebb 2000.
Megfigyelhetõ hogy a kiértékelés folyamatosan hajtódik végre és ahol a kiértékelés nem sikerül ott visszalép az elõzõ kifejezésre, azt újra kiértékeli és ha az sikeres akkor megint tovább lép.
Többirányú elágazás. Az általános formája:
Az alábbiak szerint működik:
Nagyon egyszerűen a not operátor akkor ad vissza fail-t ha sikeres volt az e kiértékelése, különben pedig sikerest ad.
Ez a kifejezés használható arra, hogy kilépjünk egy befoglaló ciklusból (every, while, until, repeat). Ha megadjuk az e kifejezést is, akkor kilép a ciklusból és generálja a kifejezés értékét. Például:
Ez a program kilistázza a Fibonacci-számokat 100000-ig.
Ha egy ciklus törzsében megadunk egy next-t, akkor egybõl megkezdi a ciklusfeltételben szereplõ kifejezés következõ kiértékelését.