Learn and practice loops controlled by a sentinel value.
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.
# Write your code here print("Enter the number: ") a = Integer(gets) # Taking input in variable a while a > 0 # This loop will terminate when the value is not greater than 0 print(a % 10) a /= 10 # Dividing a by 10 and assigning the result to variable a end print("\n")
In the program above:
- In the first line, we take input from the user.
- The loop statement,
while
, followed by a conditional expression. - The next two statements are in the body of the loop indicated by the indentation.
- The body of the loop executes if the condition expression
a > 0
istrue
. This statement tests the condition before entering the loop. Therefore, such a loop is called a pretest loop. - The loop terminates when the condition evaluates to
false
. - In the body of the loop, the first statement displays the value of the unit’s position using the modulo operation.
- The second statement