Home
C#
do while Loop Example
This page was last reviewed on Jan 20, 2024.
Dot Net Perls
Do loop. The C# "do" keyword begins a loop. The loop body comes before its condition (which is specified in a while expression). Every looping construct has advantages.
Shows a loop
This loop is rarely needed—it probably has more disadvantages than advantages. We use the do-while loop (but we probably should not).
Example program. First we use the do-while loop to sum the values of the elements in an int array. The array here is known to have 4 elements, so we can avoid checking its length.
int Array
Array Length
Part 1 The code declares an integer array of 4 values. These are used inside the do-loop.
Part 2 A do-while loop is executed. The length of the array is not checked before adding the first element's value to the sum.
Part 3 This code would throw an exception if the array was empty. The array would be accessed out-of-range.
IndexOutOfRangeException
Info The while is executed after the code is run. No condition is tested before the statements in the loop are executed the first time.
Shows a loop
class Program { static void Main() { // Part 1: new int array. int[] ids = new int[] { 6, 7, 8, 10 }; // Part 2: use do-while loop to sum numbers in 4-element array. int sum = 0; int i = 0; do { // Part 3: add to sum. sum += ids[i]; i++; } while (i < 4); System.Console.WriteLine(sum); } }
31
Loops compared. In C# the most common type of loop is probably the for-loop. It allows you to specify the 3 conditions right at the start.
Here We modify a for-loop—we turn it into a do-while loop. We see how the loops compare to each other.
Version 1 This loop walks through the indexes 0, 1, 2, 3 and 4. The sum of these numbers is 10, which is the result of the SumFor method.
for
Version 2 This loop also walks through the indexes 0, 1, 2, 3 and 4. But it will evaluate the index 0 without checking any bounds.
Version 3 The body statements of this loop are the same as in the do-while loop. It has the iteration statement at the start.
while
using System; class Program { static int SumFor() { // Version 1: for loop. int sum = 0; for (int i = 0; i < 5; i++) { sum += i; } return sum; } static int SumDoWhile() { // Version 2: do-while loop. int sum = 0; int i = 0; do { sum += i; i++; } while (i < 5); return sum; } static int SumWhile() { // Version 3: while loop. int sum = 0; int i = 0; while (i < 5) { sum += i; i++; } return sum; } static void Main() { Console.WriteLine(SumFor()); Console.WriteLine(SumDoWhile()); Console.WriteLine(SumWhile()); } }
10 10 10
Do-while, first iteration. Consider this program: it starts its iteration variable (value) at a constant. And it continues until the constant value 6 is reached.
So We know beforehand that the first iteration will always run. The do-while loop will avoid the first bounds check.
Note This theoretically could be faster than another kind of loop, but in practice the do-while does not help.
using System; class Program { static void Main() { // We start at a constant, so we know the first iteration will always be run. // ... This reduces the number of checks by 1. int value = 1; do { value++; Console.WriteLine("DO WHILE: " + value); } while (value <= 5); } }
DO WHILE: 2 DO WHILE: 3 DO WHILE: 4 DO WHILE: 5 DO WHILE: 6
A discussion. The critical difference between the for loop and the do-while loop is that in do-while, no conditions are checked before entering the loop.
Also The while-loop is the same as the do-while loop, but with the condition at the start.
Notes, first iteration. This difference in the first iteration is important. All other loops have a test before the first iteration. Think about the first iteration carefully.
Warning The do-while loop is much less common. This makes errors due to human factors more likely.
Summary. It is reasonable to avoid do-while loops—they are less familiar to developers. For most situations, using for-loops in all possible places is probably best.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
This page was last updated on Jan 20, 2024 (edit).
Home
Changes
© 2007-2024 Sam Allen.