首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lisp:如何编写包含多个条件的if语句?

Lisp:如何编写包含多个条件的if语句?
EN

Stack Overflow用户
提问于 2022-02-03 01:05:15
回答 2查看 401关注 0票数 0

我知道如何用一个单独的条件写一个if语句。例如:

代码语言:javascript
复制
(if (> a 20))

但是,在在线研究之后,我没有找到任何资源来解释如何编写包含多个条件的if语句(例如,检查a > 20还是a < 10)。如何在Lisp中编写包含多个条件的if语句?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-03 01:25:55

无论发生什么情况,如果特殊形式是相同的:

代码语言:javascript
复制
(if test-expression 
    true-expression
    false-expression)

如果您希望发生一些事情,如果两个a都高于20或低于10,您只需这样做:

代码语言:javascript
复制
(if (not (<= 10 a 20)) ; same as (or (> 20 a) (< 10 a))
    true-expression
    false-expression)

但我明白了。如果您有两个表达式,其中一个是true应该触发的,那么您可以使用or

代码语言:javascript
复制
(if (or (> 20 a) (< 10 a))
    true-expression
    false-expression)

现在,andor是下一个ifs的宏。例如:上面的表达式可以这样做:

代码语言:javascript
复制
(if (> 20 a)
    true-expression
    (if (< 10 a)
        true-expression
        false-expression)))

其中true-expression在两处都是相同的表达式。

票数 2
EN

Stack Overflow用户

发布于 2022-02-03 01:07:59

使用OR和/或AND宏组合条件。

代码语言:javascript
复制
(if (or (> a 20) (< a 10))
 ;; do something
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70964796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档