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!

You can download any files that you need for this video from this blog.

You can increase the size of the video:

Full screen mode for YouTube

You can view the video in full screen mode as shown on the left, using the icon at the bottom right of the frame.

You can also increase the quality of the video:

Changing resolution

You can improve the resolution of the video using another icon at the bottom right of the frame. This will slow down the connection speed, but increase the display and sound quality. This icon only becomes visible when you start playing the video.

Finally, if nothing happens when you play the video, check that you're not using IE in compatibility view.

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.