Home Articles FAQs XREF Games Software Instant Books BBS About FOLDOC RFCs Feedback Sitemap
irt.Org

fall through

You are here: irt.org | FOLDOC | 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

FOLDOC, Topics, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, ?, ALL

©2018 Martin Webb