Home page
or browse popular tags
ASP Tutorial

Sign up for the free email newsletter for new tips, tutorials and more. Enter your email address below, and then click the button.

Privacy Policy

RSS Twitter

ASP: Looping Statements


ASP performs several types of repetitive operations, called "looping". Loops are set of instructions used to repeat the same block of code till a specified condition returns false or true depending on how you need it. To control the loops you can use counter variable that increments or decrements with each repetition of the loop.

The two major groups of loops are For..Next and Do..Loop. The For...Next statements are best used when you want to perform a loop a specific number of times. The Do...Loop statements are best used to perform a loop an undetermined number of times. In addition, you can use the Exit keyword within loop statements.

The For ... Next Loop

For...Next loops are used when you want to execute a piece of code a set number of times. The syntax is as follows: 

For counter = initial_value to  finite_value [Step increment]

The For statement specifies the counter variable and its initial and finite values. The Next statement increases the counter variable by one. Optional the Step keyword allows to increase or decrease the counter variable by the value you specify.

Have a look at the very simple example:

<%@ language="vbscript" %>
For i = 0 to 10 Step 2 'use i as a counter
 response.write("The number is " & i & "<br />")

The preceding example prints out even numbers from 0 to 10, the <br> tag puts a line break in between each value.

Next example generates a multiplication table 2 through 9. Outer loop is responsible for generating a list of dividends, and inner loop will be responsible for generating lists of dividers for each individual number:

<%@ language="vbscript" %>
response.write("<h1>Multiplication table</h1>")
response.write("<table border=2 width=50%")

For i = 1 to 9             'this is the outer loop
   response.write("<td>" & i & "</td>")
   For j = 2 to 9          'inner loop
        response.write("<td>" & i * j & "</td>")
   Next 'repeat the code and move on to the next value of j   

Next 'repeat the code and move on to the next value of i


Back to top

The For Each ... Next Loop

The For Each...Next loop is similar to a For...Next loop. Instead of repeating the statements a specified number of times, the For Each...Next loop repeats the statements for each element of an array (or each item in a collection of objects).

The following code snippet creates drop-down list where options are elements of an array:

Dim bookTypes(7) 'creates first array
bookTypes(1)="Information Books"
Dim arrCars(4) 'creates second array

Sub createList(some_array) 'takes an array and creates drop-down list
  dim i
  response.write("<select name=""mylist"">" & vbCrLf) 'vbCrLf stands for Carriage Return and Line Feed
  For Each item in some_array
     response.write("<option value=" & i & ">" & item & "</option>" & vbCrLf)
     i = i + 1
  Next 'repeat the code and move on to the next value of i
End Sub

'Now let's call the sub and print out our lists on the screen
Call createList(bookTypes) 'takes bookTypes array as an argument
Call createList(arrcars) 'takes arrCars array as an argument

Back to top

The Do ... Loop

The Do...Loop is another commonly used loop after the For...Next loop. The Do...Loop statement repeats a block of statements an indefinite number of times. The statements are repeated either while a condition is True or until a condition becomes True. The syntax looks as follows:

Do [While|Until] condition 

Here is another syntax:

Loop [While|Until] condition

In this case  the code inside this loop will be executed at least one time. Have a look at the examples:

The example below defines a loop that starts with i=0. The loop will continue to run as long as i is less than, or equal to 10. i will increase by 1 each time the loop runs.

Dim i 'use i as a counter
i = 0 'assign a value to i

Do While i<=10 'Output the values from 0 to 10
  response.write(i & "<br \>")
  i = i + 1 'increment the value of i for next time loop executes

Now let's consider a more useful example which creates drop-down lists of days, months and years. You can use this code for registration form, for example.

'creates an array
Dim month_array(11)
month_array(0) = "January"
month_array(1) = "February"
month_array(2) = "March"
month_array(3) = "April"
month_array(4) = "May"
month_array(5) = "June"
month_array(6) = "July"
month_array(7) = "August"
month_array(8) = "September"
month_array(9) = "October"
month_array(10) = "November"
month_array(11) = "December"

Dim i 'use i as a counter

response.write("<select name=""day"">" & vbCrLf)
i = 1
Do While i <= 31  
   response.write("<option value=" & i & ">" & i & "</option>" & vbCrLf)
   i = i + 1

response.write("<select name=""month"">" & vbCrLf)
i = 0
Do While i <= 11 
   response.write("<option value=" & i & ">" & month_array(i) & "</option>" & vbCrLf)    
   i = i + 1

response.write("<select name=""year"">")
i = 1900
Do Until i = 2005    
   response.write("<option value=" & i & ">" & i & "</option>" & vbCrLf)    
   i = i + 1

Note: Make sure the condition in a loop eventually becomes false; otherwise, the loop will never terminate.

Back to top

The Exit Keyword

The Exit keyword alters the flow of control by causing immediate exit from a repetition structure. You can use the Exit keyword in different situations, for example to avoid an endless loop. To exit the For...Next loop before the counter reaches its finite value you should use the Exit For statement. To exit the Do...Loop use the Exit Do statement.

Have a look at the example:

response.write("<p><strong>Example of using the Exit For statement:</strong><p>")

For i = 0 to 10  
   If i=3 Then Exit For  
   response.write("The number is " & i & "<br />")

response.write("<p><strong>Example of using the Exit Do statement:</strong><p>")

i = 5
Do Until i = 10
  i = i - 1
  response.write("The number is " & i & "<br />")
  If i < 10 Then Exit Do

Back to top


Add To: Add to dzone dzone | Digg this digg | Add to del.icio.us del.icio.us | Stumble it stumbleupon

  • Comments

Copyright © 2005-2023             www.WebCheatSheet.com All Rights Reserved.