- Back to Home »
- C# Tutorial »
- C# Do loops and While Loops
Posted by : senan
Friday, February 14, 2014
As well as using a for loop to repeatedly execute some code, you can
use a Do loop or a While loop. We'll start with the Do Loop.
C# Do Loops
Whichever loop you use, the idea is still the same: go round and round and
execute the same code until an end condition is met. The difference with the
Do and While loops is in the structure. Here's what the Do loop looks like:
do
{
{
} while (true);
Notice where the semi-colon is, in the code above. It comes right at the end,
after the round brackets. But you start with the word do, followed by
a pair of curly brackets. After the curly brackets, you type the word while.
After while, and in between some round brackets, you type your end condition.
C# will loop round and round until the end condition between the round brackets
is met. Only then will it bail out. Here's an example, using our times
table programme:
do
{
{
answer = multiplyBy * i;
listBox1.Items.Add(answer.ToString());
i++;
listBox1.Items.Add(answer.ToString());
i++;
} while (i <= loopEnd);
So this time, we've used a Do Loop instead of a For Loop. The loop will go
round and round while the value in the variable called i is less than or equal
to the value in the variable called loopEnd. The other thing to notice here
is we have to increment (add one to) the value in i ourselves (i++). We do this
each time round the loop. If we didn't increment the value in i then it would
always be less than loopEnd. We'd have then created an infinite loop, and the
programme would crash. But we're really saying this:
"Keep Doing the code in curly brackets while i is less
than or equal to loopEnd."
C# While Loops
While loops are very similar in structure to Do loops. Here's what they look
like:
while (true)
{
{
}
And here's the times table code again:
while (i <= loopEnd)
{
{
answer = multiplyBy * i;
listBox1.Items.Add(answer.ToString());
i++;
listBox1.Items.Add(answer.ToString());
i++;
}
While loops are easier to use than Do loops. If you look at the code above,
you can see that the while part is at the start, instead of at the end like
a Do Loop. The code you need to execute repeatedly still goes between curly
brackets. And you still need a way for the loop to end (i++).
The difference between the two loops is that the code in a Do loop will get
executed at least once, because the while part is at the end. With the while
part at the beginning, your end condition in round brackets can already be true
(i might be more than loopEnd). In which case, C# will bail out immediately,
and the code in curly brackets won't get executed at all.
Deciding which loop to use can be quite tricky. Don't worry if you haven't fully understood how to use loops. You'll get lots more practice as you work your way through this book. But loops are difficult to get the hang of, and you shouldn't consider yourself a failure if you haven't yet mastered them. For now, we'll leave this complex subject, and end the section with a problem, and a solution.