缺失值 (LOOP-END LOOP 命令)
- 如果程序迂到具有初始,终端或增量值或表达式的缺失值的情况,或者如果
LOOP命令上的条件表达式返回缺失值,那么会将零循环结果和控制传递到END LOOP命令之后的第一个命令。 - 如果案例在
END LOOP命令上缺少条件表达式的值,那么循环将在第一次迭代后终止。 - 要防止具有循环结构中使用的任何变量的缺失值的个案进入循环,请在
LOOP命令上使用IF子句 (请参阅下面的第三个示例)。
示例
LOOP #I=1 TO Z IF (Y GT 10). /*Loop to X=Z for cases with Y GT 10
COMPUTE X=X+1.
END LOOP.
- 对于 Y 缺失值或 Z 缺失值 (或者如果 Z 小于 1) 的个案, X 的值保持不变。
示例
MISSING VALUES X(5).
LOOP.
COMPUTE X=X+1.
END LOOP IF (X GE 10). /*Loop until X is at least 10 or missing
- 当 X 的值为 5 时,将终止循环,因为对于 X, 5 定义为缺失。
示例
LOOP IF NOT MISSING(Y). /*Loop only when Y isn't missing
COMPUTE X=X+Y.
END LOOP IF (X GE 10). /*Loop until X is at least 10
- 对于具有 Y缺失值的个案,变量 X 保持不变,因为从未输入循环。