sas - 为什么 SAS 中的 DO WHILE 和 DO UNTIL 在应该停止循环后再执行一次循环体?
问题描述
问题 1: 对于 DO WHILE,我写下了以下代码:
data do_while;
a = 0;
do while (a<1);
a = a+0.1;
output;
end;
run;
SAS给了我这个: do_while的结果
我不明白为什么输出 1.1。当a = 1时循环不应该停止吗?
问题 2: 对于 DO UNTIL,我写下了以下内容:
data do_until;
b=0;
do until (b>=1);
b=b+0.1;
output;
end;
run;
SAS给了我这个:do_until的结果
我知道在执行循环体之前 DO WHILE 循环检查条件,而 DO UNTIL 循环执行循环体然后检查条件。
在某个时刻 b=0.9,SAS 执行 b=b+0.1(现在 b=1)并输出它。然后 SAS 检查条件 b>=1 是否为真,因此循环应该停止。但是为什么还是输出1.1呢?
解决方案
推荐阅读
- java - Drive REST API V3 Java Wrapper - 上传进度
- javascript - Node.js 在 IF 条件下的反应很奇怪
- flutter - 如何修复 TextFormField 在 Flutter 中导致重建小部件
- elasticsearch - Elasticsearch / Kibana:NoShardsAvailableException
- python - 在哪里存储 .mpd 文件在 django 上以在破折号播放器上播放?
- javascript - 无法从目录中递归获取所有文本文件名
- typescript - Firebase orderByChild() 没有按数字排序
- python - '__main__' 在 type() 的输出中是什么意思
- oracle - 将所有名称提取到多行块中
- html - 我可以在 Flask 中播放 html5 中包含的视频文件吗?