![]()  | 
 ![]()  | 
 ![]()  | 
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.
![]()  | 
 ![]()  | 
 ![]()  |