楼主: crackman
1798 0

[原创博文] 跟crakman做sas base认证试题(40) [推广有奖]

已卖:401份资源

院士

83%

还不是VIP/贵宾

-

威望
6
论坛币
91928 个
通用积分
23.5045
学术水平
424 点
热心指数
505 点
信用等级
256 点
经验
112978 点
帖子
2940
精华
0
在线时间
2532 小时
注册时间
2007-4-26
最后登录
2025-6-25

初级热心勋章 中级热心勋章 初级学术勋章 初级信用勋章

楼主
crackman 发表于 2010-11-12 20:44:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
40.The following SAS program is submitted:

data WORK.PRODUCTS;
   Prod=1;
   do while(Prod LE 6);
     Prod + 1;
   end;
run;

What is the value of the variable Prod in the output data set?

     A. 6
     B. 7
     C. 8
     D. . (missing numeric)

Answer: B
本文属于博客:http://crackman.net/
版权归作者所有,欢迎转载!如有转载,请务必注明出处!未经本文作者同意
不得用于商业应用。
这道题考察的是DO WHILE语句中循环执行条件的判断时点。
到底是先判断再执行还是先执行在判断?
DO WHILE是先判断然后执行,也就是说PROD=1,先判断 PROD LE 6是否为TRUE,然后决定是否执行循环语句。
循环每次执行完,PROD自动加1,也就是当PROD LE 6的为TRUE时,PROD最大值就是6,超过6就不执行循环内的语句,就是PROD加1了,

但是PROD等于6的时候,依然要执行循环,LE就是小与等于的意思。所以最终PROD=7。
如果改成:
data WORK.PRODUCTS;
   Prod=1;
   do until(Prod LE 6);
     Prod + 1;
   end;
run;
那么PROD=2,为什么等于2?
因为DO UNTIL是执行后再判断,PROD执行一次之后变成2,2 LE 6是true,所以终止执行!。UNTIL里面的表达式是循环终止的判断条件

,如果UNTIL里面为真,那么就终止执行DO LOOP;而WHILE的表达式是循环继续的判断条件,为真继续执行DO LOOP。
英文解释:
The DO UNTIL statement executes statements in a DO loop repetitively until a condition is true, checking the

condition after each iteration of the DO loop. The DO WHILE statement evaluates the condition at the top of the loop;
the DO UNTIL statement evaluates the condition at the bottom of the loop.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:SAS base Base CRA Man Statements following 认证 版权 博客

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 19:42