Sentinel Loops
Explore how sentinel values control the termination of while loops in C#. Understand the use of pretest loops for unknown iterations and how to implement loops for summing user inputs and other practical examples. This lesson helps you grasp handling loops that end on specific conditions rather than fixed counts.
The sentinel value
Sometimes, the loop doesn’t have a fixed number of repetitions. Instead, an indicator value stops the loop. This special value is called the sentinel value. For example, we don’t know how much data is in a file without reading it all. However, we know that every file ends with an end-of-file (EOF) mark. So, the EOF mark is the sentinel value in this case.
Note: We should select a sentinel value that’s not expected in the normal input.
The while loop
We use the while loop when the termination of the loop depends on the sentinel value instead of a definite number of iterations.
As a simple example, we want to display the reverse sequence of digits in a positive integer value input by the user.
class Test
{
static void Main()
{
System.Console.WriteLine("Enter the number: ");
int a = int.Parse(System.Console.ReadLine()); // Taking input in variable a
while (a > 0) // This loop will terminate when the value is not greater than 0
{
System.Console.Write(a % 10);
a /= 10; // Dividing a by 10 and assigning the result to variable a
}
System.Console.WriteLine("");
}
}In the program above:
-
In line 6, we take input from the user, and then convert it into an integer value using
int.Parse(). -
The loop statement,
while, followed by a conditional expression.Note: There is no semicolon (
;) at the end of line 9. -
The next four statements after the
whileloop, line 9 to 12, are in the body of the loop indicated by the indentation. -
The body of the loop executes if the condition expression
a > 0istrue. This statement tests the condition before entering the loop. Therefore, such a ...