本帖最后由 mandala 于 2012-11-19 16:56 编辑
可以比较一下这两段小程序,应该可以解决你的问题。其中aaa可以跳出repeat,继续执行下一语句。
至于while么本来就会跳出的……不然要while干什么。
 - (defun c:bbb ()
- (setq list1 '(1 2 3 4 5 6 7 8 9))
- (setq j 0
- x 7) ;_ 结束setq
- (repeat (length list1)
- (setq j (1+ j))
- (if (= j x)
- (exit)) ;_ 结束if
- )
- (print j))

- (defun c:aaa ()
- (setq list1 '(1 2 3 4 5 6 7 8 9))
- (setq catchit (vl-catch-all-apply
- '(lambda ()
- (setq j 0
- x 7) ;_ 结束setq
- (repeat (length list1)
- (setq j (1+ j))
- (if (= j x)
- (exit)) ;_ 结束if
- ) ;_ 结束repeat
- ) ;_ 结束lambda
- ) ;_ 结束vl-catch-all-apply
- )
- (print j))
|