LISP - If 构造

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.html