首页 理论教育AutoCAD2014中文版条件函数及语法结构

AutoCAD2014中文版条件函数及语法结构

【摘要】:条件分支函数用于测试其表达式的值,然后根据其结果执行相应的操作。AutoLISP提供了两个条件函数,即if和cond语句。根据对条件的判断,对不同的表达式进行求值。本函数的相关函数是progn函数。图14-4 if函数语法框图图14-5 if函数的蜕变形式if函数的语法结构图如图14-4和图14-5所示。此函数是AutoLISP语言的一个主要的条件函数。cond函数取任意数目的表作为变元。图14-6 cond函数语法框图

条件分支函数用于测试其表达式的值,然后根据其结果执行相应的操作。AutoLISP提供了两个条件函数,即if和cond语句。使它们可以控制程序的流向,实现分支结构。

1.单一条件的两分支结构if。

978-7-111-45924-8-Chapter14-92.jpg

根据对条件的判断,对不同的表达式进行求值。如果<testexpr>的求值结果为非空,则对<thenexpr>进行求值;否则,对<elsexpr>进行求值。if函数返回所选择的表达式的值。如果没有<elseexpr>表达式且<testexpr>是nil,那么,if函数返回nil。本函数的相关函数是progn函数。

978-7-111-45924-8-Chapter14-93.jpg

图14-4 if函数语法框图

978-7-111-45924-8-Chapter14-94.jpg

图14-5 if函数的蜕变形式

if函数的语法结构图如图14-4和图14-5所示。

例如:

978-7-111-45924-8-Chapter14-95.jpg(www.chuimin.cn)

2.多分支结构 cond。

978-7-111-45924-8-Chapter14-96.jpg

此函数是AutoLISP语言的一个主要的条件函数。cond函数取任意数目的表作为变元。每一个表称为一个分支,每个分支中包含一个测试部分<testn>和测试成功的结果部分<resultn>。cond函数的求值过程是:自顶向下逐个测试每个条件分支。每个分支表仅第一个元素(即:<testn>)被求值。如果求值中遇到了一个非nil的值,则该分支便为满足条件的成功分支,后面其他分支不再被求值,cond转向对该成功分支的结果部分<resultn>中的诸表达式求值。

有以下两种特殊情况:

若所有分支的测试值都为nil,或者一个分支也不存在时,cond返回nil。

如果成功的分支表中只有一个元素,即只有测试式<testn>而没有结果部分<resultn>,那么,该元素本身的值即为cond的返回值。换言之,测试部分和结果部分可以是同一个。

cond函数的语法框图如图14-6所示。

978-7-111-45924-8-Chapter14-97.jpg

图14-6 cond函数语法框图