Dan
Dan

Reputation: 905

Can Do While Loop stop when counter reaches X

I want to edit some legacy code written in classic-ASP.

Currently I've got a subroutine declared that uses a for-next loop to output some radio buttons:

 For i = 1 to Cols
   response.write "blah"
   ...
 Next

i is simply a counter, Cols is a value passed to the sub-routine. I tried editing the for-loop to be a while loop instead:

i = Start
do while i <= Cols
  response.write "blah"
  ...
  i = i + 1
loop

But I get a Response Buffer Limit Exceeded error. If I replace Cols with the value it works fine. Is this a limitation in classic-ASP?


Reason I want to use a do while loop is because currently the sub-routine is limited to looping from 1 to Cols. It would be helpful to sometimes specify the loop counts backwards (i.e. step -1) but I can't write:

if Direction = Backwards then 
  For i = Cols to 1 step -1
else
  For i = 1 to Cols
end if

Upvotes: 1

Views: 810

Answers (1)

Fionnuala
Fionnuala

Reputation: 91326

How about:

If Direction = Backwards Then
    cs = 10
    ce = 1
    s = -1
Else
    cs = 1
    ce = 10
    s = 1
End If

For i = cs To ce Step s
    ''
Next

Upvotes: 5

Related Questions