Solved
Contributor
Posts: 24

# Nested do while-loops

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
Occasional Contributor
Posts: 10

## Nested do while-loops

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
Occasional Contributor
Posts: 10

## Nested do while-loops

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.

Contributor
Posts: 24

## Nested do while-loops

Yes, of course. I see why.

Thank you.

🔒 This topic is solved and locked.