楼主: helenxcy9348
1899 3

[问答] SAS BASE 机经中Crackman [推广有奖]

  • 0关注
  • 1粉丝

初中生

80%

还不是VIP/贵宾

-

威望
0
论坛币
16 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
108 点
帖子
10
精华
0
在线时间
19 小时
注册时间
2014-2-6
最后登录
2022-5-26

+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)

这道题考察的是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


crackman给解释是2
可是两个机经po主认为Ans还是7求问到底是哪个
二维码

扫码加我 拉你入群

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

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

关键词:SAS base crackman Ackman CRACK Base following

沙发
lee_jiayong 学生认证  发表于 2016-8-9 23:18:51 |只看作者 |坛友微信交流群
DO WHILE 那题答案是7. DO UNTIL 那题答案是2. PO主可以自己在SAS 跑一次程序. Crackman的解释是对的. PO主有什么疑惑呢?

使用道具

藤椅
helenxcy9348 发表于 2016-8-10 00:04:06 |只看作者 |坛友微信交流群
lee_jiayong 发表于 2016-8-9 23:18
DO WHILE 那题答案是7. DO UNTIL 那题答案是2. PO主可以自己在SAS 跑一次程序. Crackman的解释是对的. PO主 ...
两个机经po主说答案还是7如果改成until

使用道具

板凳
lee_jiayong 学生认证  发表于 2016-8-10 02:47:26 |只看作者 |坛友微信交流群
如果想用DO UNTIL 然后还要得到7这个答案, 就必须改成do until(Prod GT 6);

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 03:35