[英]Do while loop in SAS
我指的是SAS 文档页面,以了解SAS
中DO while
和DO until
循环之间的区别。 在参考这篇文档时,我得出一个结论,每当我使用 DO while 循环时,while 语句的不等式应该总是小于(或小于或等于)。 不等式不能大于(或大于或等于)。
原因如下。 当我运行这段代码时:
data _null_;
n=0;
do while(n<5);
put n=;
n+1;
end;
run;
我得到 output 作为0,1,2,3,4.
但是当我运行这段代码时,我什么也没得到。
data _null_;
n=0;
do while(n>5);
put n=;
n+1;
end;
run;
我的结论是正确的,还是我遗漏了什么?
谢谢1 :
您是否使用 > 或 < 并不是真的。 但是测试什么的逻辑是相反的。 使用 DO WHILE(),您可以在条件为真时执行循环。 使用 DO UNTIL() 当条件为 FALSE 时您继续执行。
11 data _null_;
12 do while(n<5);
13 put n @;
14 n+1;
15 end;
16 run;
0 1 2 3 4
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
17 data _null_;
18 do until(n>=5);
19 put n @;
20 n+1;
21 end;
22 run;
0 1 2 3 4
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
另一个很大的区别是进行测试的时间。 使用 DO WHILE() 时,测试在循环开始之前进行。 使用 DO UNTIL() 它是在循环完成之后。 所以使用 DO UNTIL() 代码总是至少执行一次。
请注意,使用迭代 DO 循环更容易完成您的示例。
6 data _null_;
7 do n=0 to 4;
8 put n @;
9 end;
10 run;
0 1 2 3 4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.