FazBear 发表于 2022-7-6 14:35:26

联合IF

大家好
 
可以从一个if语句控制多个命令吗?即。
 
(如果(或(=T)(=T)(=T))
(命令“circle”“0,0”“25”)
(命令“circle”“0,0”“50”)
(命令“circle”“0,0”“75”)
(命令“circle”“0,0”“100”)
(命令“圆圈”0,0“125”)
(命令“circle”“0,0”“150”)
(命令“circle”“0,0”“175”)
(命令“circle”“0,0”“200”)
(命令“circle”“0,0”“225”)
(命令“circle”“0,0”“250”)
);如果结束
 
我已经玩过(cons&(cond)了,假设它们允许上述情况,但无法正常运行。
 
谁能给点建议吗?
 
非常感谢。

wizman 发表于 2022-7-6 14:53:31

用progn换行,如果任何表达式为true,则执行整个progn语句。

Freerefill 发表于 2022-7-6 15:01:17

啊,常见的错误,我总是把自己搞砸。
 
If语句的结构为:
 
(如有)
 
当然,忽略斜体文本。
 
您会注意到一个非常重要和关键的方面:它只允许一个命令。使用条件语句将允许许多命令,但If只允许一个。
 
不过,你可以绕过这个问题。将所有命令封装在程序中,如下所示:
 

(progn
<command one>
<command two>
...
<command banana>
)

Lee Mac 发表于 2022-7-6 15:16:08

Progn正确地包装了多个表达式,但我相信您可能可以这样绕过它:
 

(if (or )
(command "circle" "0,0" "25" "circle" "0,0" "50" "circle" "0,0" "75"
      "circle" "0,0" "100""circle" "0,0" "125""circle" "0,0" "150"
      "circle" "0,0" "175""circle" "0,0" "200""circle" "0,0" "225"
      "circle" "0,0" "250"))

 
PS>您不需要指定(=t)
 
如果持有除nil以外的任何值,它将返回T。
 

Lee Mac 发表于 2022-7-6 15:32:26

这里有更多关于Progn的帮助
 
http://www.cadtutor.net/forum/showpost.php?p=173196&postcount=10

FazBear 发表于 2022-7-6 15:46:16

魔术
 
谢谢你们。
页: [1]
查看完整版本: 联合IF