DATA Step, Macro, Functions and more

Why ";" is not needed after do in the code?

Accepted Solution Solved
Reply
Super Contributor
Posts: 1,636
Accepted Solution

Why ";" is not needed after do in the code?

Hi All,

I am curious to know why missing ";" after do did  not cause problem in the code below?

data have;

id=1;

input letter $8.;

cards;

b

bu

but

bur

butter

;

proc transpose data=have out=temp;

by id;

var letter;

run;

data want;

  set temp;

  array _s(*) col:;

  do _n_=1 to dim(_s) ;      

    if lengthn(_s(_n_))=1 and _s(_n_)="b" then do score1=1; score+1;end;

   else if lengthn(_s(_n_))=2 and _s(_n_)="bu" then do score2=1; score+1;end;

         else if lengthn(_s(_n_))=6 and _s(_n_)="butter" then do score6=1; score+1;end;

end;

proc print;run;


Thanks - Linlin

Message was edited by: Linlin


Accepted Solutions
Solution
‎05-09-2012 10:47 AM
Respected Advisor
Posts: 4,923

Re: Why ";" is not needed after do in the code?

You have inadvertantly defined iterative do loops, as in :

do i = 1, 10, 100;

     score + i;

end;

except that the list of values for the control variable contains a single value. It thus executes only once, which is also what the do block would have done. So in the end, with or without the ";", the result is the same. Interesting. Thanks for brinning it up Linlin.

PG

PG

View solution in original post


All Replies
Solution
‎05-09-2012 10:47 AM
Respected Advisor
Posts: 4,923

Re: Why ";" is not needed after do in the code?

You have inadvertantly defined iterative do loops, as in :

do i = 1, 10, 100;

     score + i;

end;

except that the list of values for the control variable contains a single value. It thus executes only once, which is also what the do block would have done. So in the end, with or without the ";", the result is the same. Interesting. Thanks for brinning it up Linlin.

PG

PG
Super Contributor
Posts: 1,636

Re: Why ";" is not needed after do in the code?

Thank you PG for your explanation! I was so scared when I found out the missing ";".  - Linlin

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 166 views
  • 0 likes
  • 2 in conversation