遺漏值 (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 保持不變,因為從未輸入迴圈。