Some time ago after not standing anymore lines like this:
if (arg)
invk(test);
else if (test)
{
alot();
stuff();
}
I decided fo
As per the C11
, chapter §6.8.4, selection statements, the available statement blocks are
if ( expression ) statement
if ( expression ) statement else statement
switch ( expression ) statement
and, regarding the else
part,
An
else
is associated with the lexically nearest precedingif
that is allowed by the syntax.
So, there is no else if
construct, exists as per standard C
.
Obviously, an if
(or if...else
) block can exist as the statement in else
block (nested if...else
, we may say).
The choice of indentation , is left to the user.
Note:
Just to add, there is no reason for a separate else if
construct to exist, the functionality can be achieved by nesting. See this wiki article. Relevant quote
The often-encountered
else if
in theC
family of languages, and in COBOL and Haskell, is not a language feature but a set of nested and independent "if then else" statements combined with a particular source code layout. However, this also means that a distinctelse-if
construct is not really needed in these languages.