2017-07-02 20 views
-1

在下面的程序中,完成聲明以便程序在距離達到250英里或使用10加侖燃料時停止生成觀測值。sas做,直到距離達到250英里時做

Data work.go259; 
    set perm.cars; 
    do gallons = 1 to 10 .....; 
    Distance= gallons*mpg; 
    output; 
    end; 
run; 

正確答案是「做加侖= 1〜10時(距離< 250)」 但我想知道爲什麼「做加侖= 1到10,直到(距離= 250)是不正確的?我以爲當距離= 250時,循環將停止,因此當距離達到250時,程序將停止產生觀測數據。

+2

當你測試它時發生了什麼?結果如何不同? – Reeza

+0

這聽起來像是一本教科書,所以也許他們只是寫下了最常見的做法。 – Seba

回答

0

據瞭解,您希望有條件地打破循環。兩種簡單的方法是離開和轉到^^)這裏有兩個例子可以做到這一點,命令Continue也是,但還沒有測試過。

Data test_goto; 
    do gallons = 1 to 10; 
    Distance= gallons*75; 
    output; 
     if distance >=250 then goto hop_Out; 
    end; 
    hop_Out: 
run; 

Data test_leave; 
    do gallons = 1 to 10; 
    Distance= gallons*75; 
    output; 
     if distance >=250 then leave; 
    end; 
run;