CAD画图狗的救赎——Lisp语言学习之路(六):重复函数repeat

上次讲了关于条件判断if函数和progn函数的使用,本期来讲关于重复函数repeat的使用,从它的英文表面意思就知道它是要做什么的了,重复。

如果重复好多次做一件同样的事情,或者是有规律的事情,那这个时候就要使用repeat函数了,比如有这样一个场景,要重复计算100次的的3+3,这个不可能真写100次的(+ 3 3)来执行,那就要使用repeat,用法很简单,如下:

(repeat 100
  (setq a (+ 3 3))
  (print a)   
)

上述代码就是令a=3+3,然后在CAD命令行输出,重复100次,相当于输出了100次的6。看这代码还是很容易理解的吧。

下面来一个相对较复杂的:

(setq a 100)
(repeat 100
  (setq a (- a 1))
  (print a)
)

上述代码意思为先令a=100,然后令a=a-1,再输出a,重复100次,相当于a每次减1,然后减了100次,在命令行会输出99,98,97….0。

repeat函数往往是知道自己要重复多少次的时候才会使用,比如知道要重复100次,1000次那种,可以大大的减少代码工作量,而且它可以做一些有规律的内容。把上述的代码稍加修改,可以画100个同心圆,也可以操作图层,建立100个图层,图层的颜色索引号分别中1~100,当然这些都是娱乐功能,现实的插件中会用它来做其它有意义的功能。

可以复制以上代码到CAD的Lisp编辑器中,或者是下载源文件

发表评论