该【程序的流程控制和AutoLIS 】是由【相惜】上传分享,文档一共【28】页,该文档可以免费在线阅读,需要了解更多关于【程序的流程控制和AutoLIS 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。。.(cond(测试表达式1结果表达式1)[(测试表达式2结果表达式2)]…)该函数从第一个子表起,计算每一个子表的测试表达式,直至有一个子表的测试表达式成立为止,然后计算该子表的结果表达式,并返回这个结果表达式的值。例如,当i小于等于1时,n=1;小于等于2时,n=4;小于等于3时,n=10;其它情况下n=100。用cond函数实现变量n和i之间以上关系的源代码如下:.(其余)结果表达式.(setqn(cond((<=i1)1) ((<=i2)4) ((<=i3)10) (t100) ))说明:该函数类似于C语言的switch语句,最后一个测试表达式“t〔或T〕〞相当于C语言的“default〞,指其余的情况,例如i等于5时,n等于100,也可以缺少这个测试表达式。与C语言switch语句不同的是,假设某一测试表达式成立,即返回相应结果表达式的值,不再向下测试。例如,上述表达式中,假设i等于0,已满足第一个测试表达式(<=i1),返回结果表达式的1,最后结果是n等于1,运算结束。.2.〔if测试条件表达式表达式1[表达式2]〕假设测试条件表达式结果为真,执行表达式1,否那么,执行表达式2。例如:(if(>a1)(setqb2))该表达式的含义是;如果a大于1,那么b等于2,否那么不作任何计算,求值结束。(if(>a1)(setqb2)(setqb3))该表达式的含义是;如果a大于1,那么b等于2,否那么b等于3,求值结束。注意:该函数最多只有3个变元,即测试条件表达式、表达式1和表达式2。先分析以下程序代码:.测试条件表达式表达式1成立表达式2测试条件表达式表达式1成立不成立.(if(>a1)(setqb2)(print(+ba))(setqb4)(printb))该程序段的本意是,假设条件成立,b等于2,然后打印a与b之和,否那么b等于4,然后打印b。但是在执行该程序段时,首先检查if函数变元的数量,第1个变元是测试条件表达式,它对应表达式(>a1),第2个变元是条件成立时执行的表达式,它对应表达式(setqb2),第3个变元是条件不成立时执行的表达式,它对应表达式(print(+ba)),那么后面的两个表达式就是多余的变元,因此显示“toomanyarguments〔变元太多〕〞的出错信息。.假设将该程序段改写为以下代码:(if(>a1)((setqb2)(print(+ba)))((setqb4)(printb)))用括号将条件成立或不成立的多个表达式括起,虽然变元的数量改为3个,但会出现“error:badfunction:2〞的出错信息。原因是在计算条件成立的表达式时,首先计算内层表(setqb2),将其返回值“2〞作为外层表的函数名,显然这是一个坏的函数名。利用progn函数可以很好地解决了本程序段存在的问题。.3.(prong表达式...)该函数将n个表达式组合起来,作为if函数的一个表达式。在执行时,按顺序计算n个表达式,返回最后一个表达式的计算结果。例如:(if(>a1)(progn(setqb2)(print(+ba)))(progn(setqb4)(printb)))该程序段的执行过程是,假设条件成立,b等于2,然后打印a与b之和,返回a与b之和;假设条件不成立,b等于4,然后打印4,返回4。.
程序的流程控制和AutoLIS 来自淘豆网www.taodocs.com转载请标明出处.