索引循环 (DEFINE-!ENDDEFINE 命令)
索引循环的语法如下所示:
!DO !var = start !TO finish [ !BY step ]
statements
!BREAK
!DOEND
- 索引变量为 ! var ,并且必须以感叹号开头。
- 开始,完成和步骤值必须是数字或求值为数字的表达式。
- 循环从起始值开始,一直持续到到达结束值为止 (除非迂到
!BREAK语句)。 步骤值是可选的,可用于指定迭代子集。 如果 start 设置为 1 ,完成为 10 ,步骤设置为 3 ,那么将使用指定的索引变量值 1 , 4 , 7 和 10 执行四次循环。 - 这些语句可以是任何有效的命令或宏关键字。
!DOEND指定循环结束。 !BREAK是可选规范。 它可以与条件处理结合使用以退出循环。
示例
DEFINE macdef (arg1 = !TOKENS(1)
/arg2 = !TOKENS(1))
!DO !i = !arg1 !TO !arg2.
frequencies variables = !CONCAT(var,!i).
!DOEND
!ENDDEFINE.
macdef arg1 = 1 arg2 = 3.
- 变量 ! i 最初被赋予值 1 (
arg1) 并递增,直到它等于 3 (arg2) ,此时循环结束。 - 第一个循环将
var与 的值并置!I,在第一个循环中为 1。 第二个循环将var和 2 并置,第三个循环将var和 3 并置。 结果是FREQUENCIES执行三次,变量分别为 VAR1, VAR2和 VAR3。