Nyquist插件基础:LISP语法-条件语句

发布于:2025-04-09 ⋅ 阅读:(36) ⋅ 点赞:(0)

1 Nyquist插件基础:LISP语法-条件语句

Nyquist 基于 Lisp 语言,条件语句是其控制程序流程的关键部分,能够依据不同条件执行不同代码块。下面详细介绍 Nyquist 里常见的条件语句。

1.1 1. if 语句

1.1.1 基本语法

if 语句是最基础的条件判断结构,它会对一个条件进行评估,若条件为真就执行一个代码块,若为假则执行另一个代码块(可选)。其基本语法如下:

(if condition then - part [else - part])
  • condition:是一个表达式,评估结果为真(通常为 t)或者假(通常为 nil)。
  • then - part:当 condition 为真时执行的代码。
  • else - part:可选部分,当 condition 为假时执行的代码。

1.1.2 示例

(setf volume 60)
(if (> volume 50)
    (print "音量较高")
    (print "音量较低"))

在上述代码中,先定义了变量 volume 并赋值为 60。接着 if 语句判断 volume 是否大于 50,由于 60 大于 50,条件为真,所以会执行 then - part,即输出 “音量较高”。

1.2 2. cond 语句

1.2.1 基本语法

cond 语句用于处理多个条件分支,它会依次评估每个条件,一旦找到为真的条件,就执行对应的代码块。语法如下:

(cond (condition1 then - part1)
      (condition2 then - part2)
      ...
      (t else - part))
  • 每个 (condition then - part) 是一个条件分支,condition 是要评估的条件,then - part 是条件为真时执行的代码。
  • (t else - part) 是可选的默认分支,当所有前面的条件都为假时执行。

1.2.2 示例

(setf score 85)
(cond ((>= score 90) (print "优秀"))
      ((>= score 80) (print "良好"))
      ((>= score 70) (print "中等"))
      ((>= score 60) (print "及格"))
      (t (print "不及格")))

在这个例子中,cond 语句依次检查 score 的值。由于 score 是 85,满足 (>= score 80) 这个条件,所以会执行对应的 then - part,输出 “良好”。

1.3 3. case 语句

1.3.1 基本语法

case 语句根据一个表达式的值从多个选项中选择执行的代码块,常用于处理固定值的情况。语法如下:

(case key - expression
  (value1 then - part1)
  (value2 then - part2)
  ...
  (otherwise else - part))
  • key - expression:是一个表达式,其值会与后面的 value 进行比较。
  • 每个 (value then - part) 是一个分支,当 key - expression 的值等于 value 时,执行对应的 then - part
  • (otherwise else - part) 是可选的默认分支,当 key - expression 的值与所有前面的 value 都不相等时执行。

1.3.2 示例

(setf fruit 'apple)
(case fruit
  (apple (print "你选择了苹果"))
  (banana (print "你选择了香蕉"))
  (orange (print "你选择了橙子"))
  (otherwise (print "未知的水果")))

在这个例子中,fruit 的值为 apple,所以 case 语句会执行对应的 then - part,输出 “你选择了苹果”。

1.4 4. 嵌套条件语句

条件语句可以相互嵌套,以实现更复杂的逻辑判断。

1.4.1 示例

(setf age 25)
(setf is-student t)
(if (>= age 18)
    (if is-student
        (print "你是成年学生")
        (print "你是成年人但不是学生"))
    (print "你是未成年人"))

在这个嵌套 if 语句的例子中,首先判断 age 是否大于等于 18。若为真,再判断 is - student 的值,根据不同情况输出相应信息;若 age 小于 18,则输出 “你是未成年人”。


作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来自AI平台,如:豆包、DeepSeek(硅基流动)(注册链接)等,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.


网站公告

今日签到

点亮在社区的每一天
去签到