fall through
<programming> (The American misspelling "fall thru" is also common)
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 (colour)
{
case GREEN:
do_green();
break;
case PINK:
do_pink();
/* FALL THROUGH */
case RED:
do_red();
break;
default:
do_blue();
break;
}
The effect of the above code is to "do_green()" when colour is "GREEN",
"do_red()" when colour is "RED", "do_blue()" on any
other colour other than "PINK", and (and this is the
important part) "do_pink()" *and then* "do_red()"
when colour 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.
Nearby terms:
fall back « fall forward « fall over « fall
through » fall thru » FALSE » fandango on core
|