怎么跳出foreach 循环
怎么跳出这个foreach(foreach n listdd
)
这个程序是循环执行全部的列表,请教大家怎样在条件符合时,跳出循环?
改用 while 吧 只能用WHILE
(SETQ ST T I 0)
(WHILE (AND ST (< ILEN))
) (setq oldlistdd listdd)
(foreach n listdd
(if ...
(setq listdd nil)
)
(setqlistdd oldlistdd) 经测试无法退出。
测试程序如下:
(defun c:tt ()
(setq listdd '(1 2 3 4 5 6))
(setq oldlistdd listdd)
(foreach n listdd
(if (= n 4) (progn
(princ n)
(setq listdd nil)
)
(princ n)
)
)
(princ listdd)
(princ)
)
输出结果:
tt 123456nil 试试vl-some 能不能满足你的要求 ZZXXQQ 发表于 2012-9-3 21:07 static/image/common/back.gif
经测试无法退出。
测试程序如下:
(defun c:tt ()
G版批评的对,Z版测试正确。。。我在4楼发的没经过测试完全臆想的答案是错误的!不过也真奇怪,foreach函数他所取得的表是怎么保存的,竟然不能复位nil?如果能找到他所保存的位置应该可以中断吧 yjr111 发表于 2012-9-4 00:11 static/image/common/back.gif
G版批评的对,Z版测试正确。。。我在4楼发的没经过测试完全臆想的答案是错误的!不过也真奇怪,foreach函 ...
感觉直接把表内容调内运算,这样,这个表重新赋值就没有效果了。(想当然的看法)
页:
[1]