fall through v.
(n. `fallthrough', var. `fall-through') 1. To exit a loop by
exhaustion, i.e., by having fulfilled its exit condition rather
than via a break or exception condition that exits from the
middle of it. This usage appears to be really old,
dating from the 1940s and 1950s. 2. To fail a test that would
have passed control to a subroutine or some other distant portion
of code. 3. In C, `fall-through' occurs when the flow of
execution in a switch statement reaches a case label
other than by jumping there from the switch header, passing a
point where one would normally expect to find a
break. A trivial example:
switch (color)
{
case GREEN:
do_green();
break;
case PINK:
do_pink();
/* FALL THROUGH */
case RED:
do_red();
break;
default:
do_blue();
break;
}
The variant spelling /* FALL THRU */ is also
common.
The effect of the above code is to do_green()
when color is GREEN, do_red() when
color is RED, do_blue() on any other
color other than PINK, and (and this is the
important part) do_pink() and then
do_red() when color is PINK.
Fall-through is considered
harmful by some, though there are contexts (such as the
coding of state machines) in which it is natural; it is generally
considered good practice to include a comment highlighting the
fall-through where one would normally expect a break. See also
Duff's device.