Základní rozhodovací strukturou v AutoLISPu je rozhodovací struktura If. Tato struktura zajišťuje podmínečné provedení skupiny příkazů závisející na hodnotě výrazu.
(if testexpr thenexpr [elseexpr])
Následující úsek kódu zjišťuje jestli je hodnota proměnné větší než 10. V případě, že ano provede se přiřazení hodnot. V opačném případě by běh programu pokračoval dál:
(if (> hodn 10) (progn (setq prom1 "retezec") (setq prom2 15) ) )
V příkladu si můžete všimnout jednak syntaxe příkazu if,
zvláště způsob psaní podmínky a dále potom příkazu progn.
Příkaz progn
umožňuje použít blok kódu. Více viz referenční příručky - příkaz progn.
Rozhodovací struktura cond umožňuje AutoLISPu vyhodnocovat jednotlivé položky seznamu (test výsledek) do té doby než jedna z položek nevrátí hodnotu různou od nil.
(cond [(test result ...) ...])
Funkce cond může simulovat výstup funkce case. Pokud potřebujete simulovat funkci case použijte v programu následující kód:
(cond ((= proměnná hodnota1) co_se_má_provést) ((= proměnná hodnota2) co_se_má_provést) ((= proměnná hodnota3) co_se_má_provést) ((= proměnná hodnota4) co_se_má_provést) (t default_akce) )
Význam jednotlivých částí kódu:
Vyhodnocení skupiny podmínek v programu. Příklad simuluje funkci abs:
(cond ((minusp a) (- a)) (t a) )
Je-li hodnota v proměnné a záporná je převedena na kladné číslo, jinak je vráceno rovnou kladné číslo.