if statement
There are two forms of if statement.
if ( expression ) if ( expression )
statement and statement
else
statement
The interpretation of these forms are obvious. However, be careful
when another if statement comes at the place for `statement'.
Let us examine the following example.
if ( expression1 )
if ( expression2 ) statement1
else
statement2
One might guess statement2 after else corresponds with the
first if ( expression1 ) by its appearance of indentation.
But, as a matter of fact, the Asir parser decides that it
correspond with the second if ( expression2 ).
Ambiguity due to such two kinds of forms of if statement is
thus solved by introducing a rule that a statement preceded by an
else matches to the nearest preceding if.
Therefore, rearrangement of the above example for improving readability
according to the actual interpretation gives the following.
if ( expression1 ) {
if ( expression2 ) statement1 else statement2
}
On the other hand, in order to reflect the indentation, it must be written as the following.
if ( expression1 ) {
if ( expression2 ) statement1
} else
statement2
When if is used in the top level, the if expression should be
terminated with $ or ;.
If there is no terminator, the next expression will be skipped to be evaluated.
Go to the first, previous, next, last section, table of contents.