LISP - 如果构造


if宏后面跟着一个计算结果为 t 或 nil 的测试子句如果测试子句的计算结果为 t,则执行测试子句后面的操作。如果为零,则评估下一个子句。

if 的语法 -

(if (test-clause) (action1) (action2))

实施例1

创建一个名为 main.lisp 的新源代码文件,并在其中键入以下代码。

(setq a 10)
(if (> a 20)
   (format t "~% a is less than 20"))
(format t "~% value of a is ~d " a)

当您单击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行它,返回的结果是 -

value of a is 10

实施例2

if子句后面可以跟一个可选的then子句

创建一个名为 main.lisp 的新源代码文件,并在其中键入以下代码。

(setq a 10)
(if (> a 20)
   then (format t "~% a is less than 20"))
(format t "~% value of a is ~d " a)

当您单击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行它,返回的结果是 -

a is less than 20
value of a is 10 

实施例3

您还可以使用 if 子句创建 if-then-else 类型语句。

创建一个名为 main.lisp 的新源代码文件,并在其中键入以下代码。

(setq a 100)
(if (> a 20)
   (format t "~% a is greater than 20") 
   (format t "~% a is less than 20"))
(format t "~% value of a is ~d " a)

当您单击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行它,返回的结果是 -

a is greater than 20
value of a is 100  
lisp_decisions.htm