CAD画图狗的救赎——Lisp语言学习之路(七):循环函数while

上次讲了关于重复函数repeat,repeat主要是在知道要重复多少次时才使用,那当不知道要重复多少次时怎么办呢?这就要用到while函数了。而使用一定的方法,repeat和while是可以相互转化

本期你会学会以下内容:

  1. while函数的使用
  2. while函数和repeat函数的相互转化

1.while函数的使用

while,顾名思义就是当的意思,后面跟一个条件,就是当…的时候,就做…事情。来举一个例子,在命令行循环输出100,99,98..1,这个在上一期已经用repeat函数来做过了,这次使用while函数来实现同样的功能。其代码如下:

(setq a 100);;;令a=100
(while (> a 0)
  (print a);;;输出a的值
  (setq a (- a 1));;;让a=a-1,
)

很容易理解,上述代码就成功实现了从100输出到1的功能。

2.while函数和repeat函数的转化

在调整代码的逻辑之后,这两个函数是可以相互转化的。就像上面的例子和上一期的repeat的例子一样,实现了相同的功能。while函数的条件是直接跟在了while之后,而repeat则是在后面再跟一个if。相当于说,while是相当于repeat和if的组合体。

发表评论