明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2286|回复: 4

[已解答] 请教循环退出的问题

[复制链接]
发表于 2013-11-22 15:25 | 显示全部楼层 |阅读模式
请问,类似foreach、mapcar和repeat实现的循环语句,如何实现中间满足条件后结束循环,继续往下执行,而不需要继续剩余的无用循环了?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-11-22 15:34 | 显示全部楼层
我的看法是,需要退出,那就用while循环,使用mapcar、foreach、repeat这类定量的循环语句是无法中途退出循环的,除非使用条件+exit,但这样就不仅仅退出循环了,而是退出程序了。
mapcar等定量循环体一般有相对优化的算法,如果再生硬地加进一个退出相关的判断语句,即使能退出,从效率来说,也应该是得不偿失的。
 楼主| 发表于 2013-11-22 16:27 | 显示全部楼层
受教了。谢谢!
发表于 2013-11-23 10:32 | 显示全部楼层
这个我比较在行 while 可以退出的。当条件为nil就可以不循环了。
 楼主| 发表于 2013-11-29 19:32 | 显示全部楼层
(setq loop T)
(mapcar        '(lambda (x)
           (if loop
             (progn (if        (equal x 20)
                      (setq loop nil)
                    )
             )
           )
         )
        '(10 20 30)
)
没办法只能在mapcar里加个判断。不过运行次数不会变化的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-12 09:19 , Processed in 0.173371 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表