Read our blogs, tips and tutorials
Try our exercises or test your skills
Watch our tutorial videos or shorts
Take a self-paced course
Read our recent newsletters
License our courseware
Book expert consultancy
Buy our publications
Get help in using our site
544 attributed reviews in the last 3 years
Refreshingly small course sizes
Outstandingly good courseware
Whizzy online classrooms
Wise Owl trainers only (no freelancers)
Almost no cancellations
We have genuine integrity
We invoice after training
Review 30+ years of Wise Owl
View our top 100 clients
Search our website
We also send out useful tips in a monthly email newsletter ...
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.
You can increase the size of your video to make it fill the screen like this:
Play your video (the icons shown won't appear until you do), then click on the full screen icon which appears as shown above.
When you've finished viewing a video in full screen mode, just press the Esc key to return to normal view.
To improve the quality of a video, first click on the Settings icon:
Make sure yoiu're playing your video so that the icons shown above appear, then click on this gear icon.
Choose to change the video quality:
Click as above to change your video quality.
The higher the number you choose, the better will be your video quality (but the slower the connection speed):
Don't choose the HD option shown unless your connection speed is fast enough 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.
From: | duggie |
When: | 25 Aug 20 at 20:46 |
Andrew,
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?
From: | Andrew G |
When: | 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
From: | Andy B |
When: | 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.
Kingsmoor House
Railway Street
GLOSSOP
SK13 2AA
Landmark Offices
99 Bishopsgate
LONDON
EC2M 3XD
Holiday Inn
25 Aytoun Street
MANCHESTER
M1 3AE
© Wise Owl Business Solutions Ltd 2024. All Rights Reserved.