首页 历史故事 条件语句和循环语句

条件语句和循环语句

时间:2022-01-19 历史故事 版权反馈
【摘要】:在DO WILD语句中,entrylist由同时包含普通字符和通配符的字符串组成。这个程序完成后,ENDRUN行后的SAC宏再继续执行。
条件语句和循环语句_地震学实习教程

3.5.4 条件语句和循环语句

宏命令中提供了类似程序设计语言中的“条件语句”和“循环语句”结构,用以控制和改变宏文件中命令运行的次序。

1.条件语句

要改变宏文件中命令执行的顺序,可以通过条件判断语句实现,其句法与FORTRAN 77的if-then-else语句相似但不是完全相同:

IF expr

commands

ELSEIF expr

commands

ELSE

commands

ENDIF

其中expr表示逻辑表达式,其形式为:

token op token

这里token是常量、宏参数、暂存块变量或头段变量,op是下面逻辑运算符之一:

GT,GE,LE,LT,EQ,NE

在求逻辑运算表达式的值之前,token都要转换成浮点数,现行版本条件语句段最多可以嵌套10层,分支结构ELSEIF和ELSE在条件语句段中是可选项,其中ELSEIF分支的个数没有限制。注意与FORTRAN 77不同的是,这里的逻辑表达式没有用圆括号括起来,而且在IF和ELSEIF后也没有THEN。

2.循环语句

循环语句可以很方便地实现一系列命令的重复执行,或是通过遍历元素列表固定重复次数,或者重复执行直至满足某个条件。你也能够中断(不到执行结束)一个循环。下面说明这组句法:

DO variable=start,stop{,increment}

commands

ENDDO

DO variable FROM start TO stop{BY increment}

commands

ENDDO

DO variable LIST entrylist

commands

ENDDO

DO variable WILD{DIR name}entrylist

commands

ENDDO

WHILE expr

commands

ENDDO

BREAK

variable是循环变量名。执行循环时它的当前值可作为宏参数存储,并且可在它的名字前冠以美元符号($)用于循环体(即命令)中。

start是循环变量的开始值,它必须是一个整型数。

stop是循环变量的终止值,它也必须是一个整型数。

increment是循环变量的增值选项,如果忽略它,则缺省值设为1。

entrylist是步长不限的循环变量的列表。

它们可能是整数、浮点数或字符串。在DO WILD语句中,entrylist由同时包含普通字符和通配符的字符串组成。执行循环前,这个列表扩展为与字符串相应的一系列文件。expr是逻辑表达式,与条件测试一节说明的一样。

现行版本循环嵌套的最多层次是10层。

3.在SAC宏中执行其他程序

需要时,SAC宏内也能执行其他程序。用户可以向程序传递一个可选择的命令。如果程序是交互的,还可以向它输入信息。下面给出这个语句的形式:

RUN program{message}

{inputlines}

ENDRUN

宏参数、暂存块变量、头段变量和内嵌函数都能用于上述语句。在这个程序执行之前,它们要全部代入计算。这个程序完成后,ENDRUN行后的SAC宏再继续执行。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈