条件判断(case) - lisp-cookbook-ja/common-lisp GitHub Wiki

制御構造

条件判断(case文)

C言語やJavaの switch-case に似た機能です。

(case 値
  (条件値1
     処理1
     処理2 ...)
  (条件値2
     処理3 ...))

条件値と値が eql となる場合のみ後続の処理が順に評価されます。 条件値に T 又は OTHERWISE を指定すると、他の全ての条件値に一致しなかった場合に評価されます。 また、条件値には括弧で囲った複数の値を配置することも出来ます。この場合は、括弧内のどれか1つの値と一致すれば後続の処理が評価されます。 T と一致する値の場合の処理を記述したい場合、(T) として括弧で囲む必要があります。

最後に評価された処理の値が caseの値として返ります。どの条件値とも一致しなかった場合には NILが返ります。