Lisp - 如果构造



if 宏后面接着一个对 t 或 nil 求值的测试子句。如果测试子句被求值为 t,则执行测试子句之后的动作。如果它为 nil,则求值下一个子句。

if 的语法 -

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

示例

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

main.lisp

; set a as 10
(setq a 10)

; check if a is greater than 20
(if (> a 20)
   ; print the result if a is less than 20
   (format t "~% a is less than 20"))
; print the value of a   
(format t "~% value of a is ~d " a)

输出

当你点击执行按钮,或按 Ctrl+E 时,LISP 会立即执行它,返回的结果是 -

value of a is 10

示例

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

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

main.lisp

; set a as 10
(setq a 10)
; check if a is greater than 20
(if (> a 20)
   ; print statement if a is greater than 20
   then (format t "~% a is less than 20"))
; print value of a   
(format t "~% value of a is ~d " a)

输出

当你点击执行按钮,或按 Ctrl+E 时,LISP 会立即执行它,返回的结果是 -

a is less than 20
value of a is 10 

示例

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

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

main.lisp

; set a as 100
(setq a 100)
; if a is greater than 20
(if (> a 20)
   ; print statement if a is greater than 20
   (format t "~% a is greater than 20") 
   ; else print this statement
   (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
广告