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 this 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.