fall through

動詞

(名詞 fallthrough、別表記:fall-through)

  1. ループを、途中から抜け出すbreakや例外条件によってではなく、終了条件を満たすことによって、すなわち出尽くしによって抜けること。この用法はかなり古いようで、1940年代から1950年代にさかのぼる。

  2. 制御をサブルーチンやコードの離れた部分に渡すはずだったテストに失敗すること。

  3. Cでは、switch文中の実行の流れが、switchのヘッダーからそこへジャンプするのではなく、breakがあると普通は予想される地点を通り過ぎて、caseラベルに到達したときに‘fall-through’が起こる。ささいな例:

switch (color)
{
case GREEN:
   do_green();
   break;
case PINK:
   do_pink();
   /* FALL THROUGH */
case RED:
   do_red();
   break;
default:
   do_blue();
   break;
}

変種の表記/* FALL THRU */もよく見られる。

上記のコードの効果は、colorがGREENのときdo_green()を、REDのときdo_red()を、PINK以外の他のどの色でもdo_blue()を、そして(ここが重要な部分だが)colorがPINKのときdo_pink()の後にdo_red()を実行することである。Fall-throughは一部の人にはconsidered harmfulとされるが、(状態機械のコーディングなど)それが自然な文脈もある。普通ならbreakを予想する箇所のfall-throughを強調するコメントを入れるのが、一般に良い習慣とされる。Duff's deviceも参照。