#### 4.2.5 Elif

One common case of nested conditionals is used to check for more than two possible alternatives. For example, you might have

         #if X == 1
         ...
         #else /* X != 1 */
         #if X == 2
         ...
         #else /* X != 2 */
         ...
         #endif /* X != 2 */
         #endif /* X != 1 */

Another conditional directive, ``#elif` ', allows this to be abbreviated as follows:

         #if X == 1
         ...
         #elif X == 2
         ...
         #else /* X != 2 and X != 1*/
         ...
         #endif /* X != 2 and X != 1*/

``#elif` ' stands for “else if”. Like ``#else` ', it goes in the middle of a conditional group and subdivides it; it does not require a matching ``#endif` ' of its own. Like ``#if` ', the ``#elif` ' directive includes an expression to be tested. The text following the ``#elif` ' is processed only if the original ``#if` '-condition failed and the ``#elif` ' condition succeeds.

More than one ``#elif` ' can go in the same conditional group. Then the text after each ``#elif` ' is processed only if the ``#elif` ' condition succeeds after the original ``#if` ' and all previous ``#elif` ' directives within it have failed.

``#else` ' is allowed after any number of ``#elif` ' directives, but ``#elif` ' may not follow ``#else` '.