(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}.
[glossary]
[Reference(s) to this entry by made by: {Duff's device}]