# The 'if' and 'else' keywords

The if-else statement is a two-way decision statement. It is written as

```	if ( expression )	statement1;
[else			statement2;]
```

The else portion is optional. If the expression evaluates to true (anything other than 0) then statement1 is executed. If there is an else statement and the expression evaluates to false statement2 is executed. For example

```(1)
int NumberOfUsers;
.
.
if( NumberOfUsers == 25 )
{				/* No else part */
printf( "There are already enough users. Try later.\n" );
return ERROR;
}
.
.

(2)	if( a >= b )	larger = a;	/* else part is present */
else		larger = b;
```

Consider this code fragment:

```	if( p == 1 )
if( q == 2 )	r = p * 2 + q;
else r = q * 2 + p;
```

Because the else part is optional, there is an ambiguity when an else is omitted from a nested if sequence. In 'C', this is resolved by associating the else with the closest previous if that does not have an else. Therefore, in the above example, the else part belongs to the if(q==2) statement. The code can be made more readable by explicitly putting parentheses in the expression, like this

```	if( p == 1 )
{
if( q == 2 )	r = p * 2 + q;
}
else r = q * 2 + p;

OR

if( p == 1 )
{
if( q == 2 )	r = p * 2 + q;
else r = q * 2 + p;
}
```

Because the statement in the else part can also be an if statement, a construct such as shown below is possible in 'C' to create a multiple choice construct.

```	if( expression1 )
statement1;
else if( expression2 )
statement2;
else if( expression3 )
statement3;
.
.
else
statementN;
```

## Example: Basic if example.