turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Find a Community

- Home
- /
- SAS Programming
- /
- Base SAS Programming
- /
- Nested do while-loops

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-02-2012 04:32 AM

Hello,

I am somewhat new to SAS and am puzzled as to how the following program behaves:

data bla;

i=999;

j=999;

do while(i ge 100);

do while(j ge 100);

put i= j=;

j = j-1;

end;

i = i-1;

end;

run;

I would expect the output to be all pairs of numbers (i,j), where i and j are in the range from 100 to 999. Instead only the j varies, while i stays at 999. What am I missing here?

Kind regards,

Hedegaard84.

Accepted Solutions

Solution

04-02-2012
04:48 AM

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to Hedegaard

04-02-2012 04:48 AM

Try this,

data bla;

i=999;

j=999;

do while(i ge 100);

do while(j ge 100);

put i= j=;*

output;

j = j-1;

end;

j=999;

i = i-1;

end;

run;

Youst must OUTPUT in rthe inner loop and reset the j variable after completion of the inner loop.

All Replies

Solution

04-02-2012
04:48 AM

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to Hedegaard

04-02-2012 04:48 AM

Try this,

data bla;

i=999;

j=999;

do while(i ge 100);

do while(j ge 100);

put i= j=;*

output;

j = j-1;

end;

j=999;

i = i-1;

end;

run;

Youst must OUTPUT in rthe inner loop and reset the j variable after completion of the inner loop.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to Gerd47

04-02-2012 04:53 AM

Yes, of course. I see why.

Thank you.