Study SAS

統計解析ソフトウェアSASについて学習したことのまとめやSAS認定試験対策など

until文実行後の変数の値

while文の時と同様、untilを抜けた後の変数の値も
SASグローバル認定プログラム試験で頻出

data work.RetData;
    i = 0;
    do until(i > 7);
        i = i + 1;
    end;
run;
OBS i
1 8

iが7より大きくなるまでiがインクリメントされ、
i = 8 でuntilのブロックを抜ける。データセットに入るiの値は8。

以下のような場合はwhile文と挙動が異なるので注意。

data work.RetData;
    i = 8;
    do until(i > 7);
        i = i + 1;
    end;
run;
OBS i
1 9

untilの条件をすでに満たしている場合でも
ブロックの中の処理が最低1回は実行される。