ASP.NET Basics, Part 4: Looping the Loop - Dos and Don'ts
(Page 4 of 7 )
A close cousin of the "while" loop is the "do-while" loop, whichgenerally looks like this:
do
{
do this!
} while (condition)
Wondering what the difference is between this one and the previous one?Try this next example in your browser:
<script language="C#" runat="server">
void Page_Load()
{
int bingo = 366;
// script will never enter the loop
// since the condition is false
while (bingo == 699)
{
output.Text = "Bingo!";
}
}
</script>
<html>
<head><title>Dos and Don'ts</title></head>
<body>
<asp:label id="output" runat="server" />
</body>
</html>
And here is the output:
What output?
The reason for the blank page is simple. If you take a closer look atthe code listing above, you will notice that the conditional statementevaluates to false at the first iteration itself. As a result, thescript never enters the "while" loop.
Now, there may be occasions when you need to execute a particular set ofstatements at least once before you check for a valid conditionalexpression. Consider the example of an interactive session with a storemanager adding items to the store inventory. You might want to force himto add at least one item. Once he has added a single item, you can askif he wishes to add more; if yes, allow him to continue, otherwiseterminate the session. A "do-while" loop fits this situation well: theconstruction of the "do-while" loop is such that the statements withinthe loop are executed first, and the condition to be tested is checkedafter.
The next example will demonstrate this:
<script language="C#" runat="server">
void Page_Load()
{
int bingo = 366;
do
{
output.Text = "Bingo!";
} while (bingo == 699);
}
</script>
<html>
<head><title>Dos and Don'ts</title></head>
<body>
<asp:label id="output" runat="server" />
</body>
</html>
And here is the output:
Bingo!
In this case, the script will always execute the statements within theloop at least once. Subsequent iterations are subject to the evaluationof the conditional expression of the "do-while" loop. In the exampleabove, the expression evaluates to false, resulting in immediate exitfrom the loop after the first iteration. This is clearly seen in theoutput above.
How about another example to make things clearer? This next one rewritesthe countdown example using the "do-while" loop below:
<script language="C#" runat="server">
void Page_Load()
{
// define a loop counter
int countdown= 10;
output.Text = "Beginning countdown...";
// repeat so long as the variable
// is greater than or equal to zero
do {
output.Text += "
" + countdown;
countdown--;
} while (countdown >= 0);
output.Text += "<h1>Houston, we have lift-off!</h1>";
}
</script>
<html>
<head><title>Countdown To Launch</title></head>
<body>
<asp:label id="output" runat="server" />
</body>
</html>
And here's the output:
Beginning countdown...
10
9
8
7
6
5
4
3
2
1
0
Houston, we have lift-off!
The bottom line: using a "do-while" loop ensures that the code withinthe loop will be executed at least once, regardless of whether or notthe conditional expression evaluates as true.
Next: For-gone Conclusion >>
More ASP.NET Articles
More By Harish Kamath (c) Melonfire