7.3. The continue Statement
Sometimes situations arise wherein you need to do something special within a loop before you continue processing it. For example, you might have a loop that is polling the fire sprinkler sensors I mentioned at the beginning of this chapter. However, instead of breaking out of the loop when a sensor is tripped, perhaps you want to continue reading the rest of the sensors to see how fast the fire is speading. The code might look like this:
while (true)
{
ID++;
state = readSensor(ID);
if (state == true)
{
soundAlarm();
callFireDepartment();
continue;
}
if (ID == MAXSENSORS)
{
ID = −1; // −1 so increment operator sets it to 0
}
}
In this code fragment, you establish an infinite loop by design by stating that the test expression is always logic True. The code increments a sensor identification number (ID) and then reads the appropriate sensor. If the sensor does not return true, the program makes another pass through the loop. If there is a fire and the sensor returns true, the alarm is sounded, the fire department is called, and then the code continues execution at expression2. Because expression2 is always logic True, the loop continues to execute the code. When a while or do-while loop is used, the continue statement always sends control to the expression that determines whether another pass through the loop is necessary (that is, expression2).
The same type of code using a for loop would be the following:
for (ID = 0; true; ID++) { state = readSensor(ID); ...