Rozhodovací struktury

Přehled informací

Rozhodovací struktura If

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.

Syntaxe příkazu

  (if testexpr thenexpr [elseexpr])

Argumenty příkazu

Příklad použití struktury If

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

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.

Syntaxe příkazu

  (cond [(test result ...) ...])

Argumenty příkazu

Poznámky k příkazu

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:

Příklad použití funkce cond

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.