So far we learned pre-test loops such as the general while loop, counter controlled loops specifically for loop, sentinel controlled loops and flag controlled loops. In all these loops we initialized the loop control variable(s) and tested the condition before entering the loop. For instance, data-validation would require the data to be read at least once and then test for its validity. There are special situations were the loop must be executed at least once before the testing is done. Two examples come to mind, a circular queue, and sorting. In such cases the post test looping construct is used