C# Programming videos | C# Part 9 - While Loops and Do Loops

Posted by Andrew Gould on 17 November 2014

A While Loop in C# allows your code to repeat a set of instructions while a condition is met. This video starts by teaching you how to write a basic While statement and moves on to explain how to avoid endless loops, how to break out of a loop, how to continue to the next iteration of the loop and also how to use the Do statement to change where your condition is evaluated. The second half of the video demonstrates how to use While loops in a practical context by looping over the lines of a text file - as a bonus you'll learn a little about StreamReaders and how to use basic arrays too!

See our full range of C# training resources.

There are no files which go with this video.

There are no exercises for this video.

Making a  video bigger

You can increase the size of your video to make it fill the screen like this:

View full screen

Play your video (the icons shown won't appear until you do), then click on the full screen icon which appears as shown at its bottom right-hand corner.


When you've finished viewing a video in full screen mode, just press the Esc key to return to normal view.

Improving the quality of a video

To improve the quality of a video, first click on the Settings icon:

Settings icon

Make sure you're playing your video so that the icons shown appear, then click on this gear icon at the bottom right-hand corner.


Choose to change the video quality:

Video quality

Click on Quality as shown to bring up the submenu.


The higher the number you choose, the better will be your video quality (but the slower the connection speed):

Connection speed

Don't choose the HD option unless you have a fast enough connection speed to support it!


Is your Wise Owl speaking too slowly (or too quickly)?  You can also use the Settings menu above to change your playback speed.

This page has 1 thread Add post
25 Aug 20 at 20:46


Here is part of the code in this video:

 while (!clientsFile.EndOfStream)
                    string eachClient = clientsFile.ReadLine();
                    string[] clientDetails = eachClient.Split('\t');

Am I correct in saying that immediately when the While loop starts, you defined several variables, ie in these two lines:

 while (!clientsFile.EndOfStream)
                    string eachClient = clientsFile.ReadLine();

   you declared a variable called eachClient of type String?

The reason for my confusion is in VBA, I make a point never to declare variables within loops, be it a Do While or For Next loop, such as:

For i = 1 to 10
    Dim s As String
    ' rest of the code
Next i

the reason being for each iteration, the variable s is "reset".

Is there another way to declare the variables in C# or is it perfectly acceptable?

26 Aug 20 at 12:39

Further to Andy's answer, declaring variables within blocks of code is more about controlling the scope of the variable in C#.  Declaring a variable within a code block means that it's inaccessible outside of the block.  There's a simple example of that here https://docs.microsoft.com/en-us/learn/modules/csharp-code-blocks/2-exercise-variable-scope

26 Aug 20 at 09:31

Replying on behalf of Andrew - not just perfectly acceptable, but standard practice.  In VBA you declare variables by convention at the start of the procedure in which they're used (although you don't have to).  In C# by convention you declare variables just before they're used.  You're correct that it is slightly inefficient, as the program has to replace one variable s with another each time, rather than re-using one you've declared up-front.  Whether this makes any difference to processing time I couldn't say, but since C# is compiled I suspect not.  If there is one, it will be minuscule.