Loops
As youve just seen, an If statement causes a code block to execute once if the
value of its test expression is true. Loops, on the other hand, cause a code block
to execute repeatedly for as long as the test expression remains true. There are
two basic kinds of loop:
While loops, also called Do loops (which sounds like something Betty Boop
might say!)
For loops, including For Next and For Each
A While loop is the simplest form of loop; it makes a block of code repeat for as
long as a particular condition is true. Heres an example:
Visual Basic File: Loops.aspx
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Loops</title>
<script runat="server" language="VB">
Sub Page_Load(s As Object, e As EventArgs)
' Initialize counter
Dim counter As Integer = 0
' Loop
Do While counter <= 10
' Update the label
messageLabel.Text = counter.ToString()
' We use the += operator to increase our variable by 1
counter += 1
Loop
End Sub
</script>
</head>
<body>
<form runat="server">
<asp:Label id="messageLabel" runat="server" />
</form>
</body>
</html>
72
Chapter 3: VB and C# Programming Basics
C# File: Loops.aspx
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Loops</title>
<script runat="server" language="C#">
void Page_Load()
{
// initialize counter
int counter = 0;
// loop
while (counter <= 10)
{
// Update the label
messageLabel.Text = counter.ToString();
// C# has the ++ operator to increase a variable by 1
counter++;
}
}
</script>
</head>
<body>
<form runat="server">
<asp:Label id="messageLabel" runat="server"/>
</form>
</body>
</html>
If you load this page, youll get the result illustrated in Figure 3.5.
Figure 3.5. Results of a While loop
When you open the page, the label will be set to show the number 0, then 1,
then 2, all the way to 10. Of course, since all this happens in Page_Load (i.e. before
any output is sent to the browser), youll only see the last value assigned: 10.
73
Loops
This demonstrates that the loop repeats until the condition is no longer met. Try
changing the code so that the counter variable is initialized to 20 instead of 0.
When you open the page now, you wont see anything on the screen, because
the loop condition was never met.
The other form of the While loop, called a Do While loop, checks whether or not
the condition has been met at the end of the code block, rather than at the be-
ginning:
Visual Basic File: Loops.aspx (excerpt)
Sub Page_Load(s As Object, e As EventArgs)
' Initialize counter
Dim counter As Integer = 0
' Loop
Do
' Update the label
messageLabel.Text = counter.ToString()
' We use the += operator to increase our variable by 1
counter += 1
Loop While counter <= 10
End Sub
C# File: Loops.aspx (excerpt)
void Page_Load()
{
// initialize counter
int counter = 0;
// loop
do
{
// Update the label
messageLabel.Text = counter.ToString();
// C# has the operator ++ to increase a variable by 1
counter++;
}
while (counter <= 10);
}
If you run this code, youll see it provides the exact same output we saw when
we tested the condition before the code block. However, we can see the crucial
difference if we change the code so that the counter variable is initialized to 20.
In this case, we will, in fact, see 20 displayed, because the loop code is executed
once before the condition is even checked! There are some instances when this
74
Chapter 3: VB and C# Programming Basics

Get Build Your Own ASP.NET 2.0 Web Site Using C# & VB, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.