Conditional Statement Chapter 8. Conditional Statements Are statements that check an expression then...

Preview:

Citation preview

Conditional Statement

Chapter 8

Conditional Statements

Are statements that check an expression then may or may not execute a statement or group of statement depending on the result of the condition.

Types of Conditional Statement

The If Statement The If-Else Statement The Nested-If Statement The If-Else-If Ladder The Switch Statement The Nested Switch Statement

The If Statement

The general form of the If statement is:

if ( expression)

statement;

• Expression is relational or Boolean expression that evaluates to a TRUE (1) or False (0) value.

• Statement may either be a single C statement or a block of C statements.

The If Statement

The general form of the If statement with block statement is:

if ( expression)

{

statement_sequence;

}

• In an if statement, if the expression evaluates to TRUE (1), the statement or the block of statements that forms the target of the if statement will be executed. Otherwise, the program will ignore the statement or the block of statements.

The If-Else statement

The general form of the if-else statement is:

If (expression)

statement_1;

else

statement_2; Where:

– If and else are reserved words– Expression is relational or Boolean expression that

evaluates to a TRUE (1) or False (0) value. – Statement_1 and statement_2 may either be a single C

statement or a block of c statements.

The If-Else statement

The general form of the if-else statement with block of statement is:

If (expression)

{ statement_sequence;

}

else

{

statement_sequence;

}

The If-Else statement

If an if-else statement, if the expression is TRUE (1), the statement or block of statement after the if statement will be executed; otherwise, the statement or block of statement in the else statement will be executed.

Note: Only the code associated with the if or the code that is associated with the else executes, never both.

Nested-If statement

One of the most confusing aspects of the if statement in any programming language is nested ifs. A nested if is an if statement that is the object of either an if or else.

This is sometimes referred to as “an if within an if.”

The reason that nested ifs are so confusing is that it can be difficult to know what else associates with what if.

Nested-If statement

Fortunately, C provides a very simple rule for resolving this type of situation.

In C, the else is linked to the closest preceding if that does not already have an else statement associated with it.

Nested-If statement

Consider the following situations:– Situations 1. The else at number 3 is paired with

the if in number 2 since it is the nearest if statement with the else statement.

1. if….. 2. if ……

… 3. else

Nested-If statement

Consider the following situations:– Situations 2. The else in number 5 is paired with

the if in number 1. 1. if …. 2. { 3. if …. 4. } 5. else

Nested-If statement

Note that there is a pair of braces found in number 2 and number 4.

The pair of braces defined the scope of the if statement in number 1 starting from the { in number 2 and ends with } in number 4.

Therefore, the else statement in number 5 cannot paired with the if statement in number 3 because the else statement is outside the scope of the first if statement.

This makes the if statement in number 1 the nearest if statement to the else statement in number 5.

The if-else-if Ladder

A common programming construct in C is the if-else- if ladder.

The general form of the if-else-if ladder statement is: if ( expression_1)

statement_1;

else if (expression_2)

statement_2;

else if (expression_3;

statement_3;

:

:

else

statement_else;

The if-else-if Ladder

Where: – If and else are reserve words in C– Expression_1, expression_2 up to expression_n in

relational or boolean expression that evaluates to a TRUE (1) or False (0) value.

– Statement_1, statement_2 up to statement_else may either be a single C statement or a block of C statement.

In an if-else-if ladder statement, the expression are evaluated from the top downward.

As soon as a true condition is found, the statement associated with it is executed and the rest of the ladder will not be executed. If none of the condition is true, the final else is executed.

The if-else-if Ladder

The final else acts as a defaults condition. If all other conditions are false, the last else statement is performed.

If the final else is not present, then no action takes place.

Note: The final else is optional, you may include this part if needed in the program or you may not include if not needed.

The switch statement

The switch statement is a multiple-branch decision statement.

The general form of the switch statement is:

switch (variable) {

case constant1:statement sequence_1;break;

case constant2:statement_sequence_2;break;

::

default:statement_sequence_default;

}

The switch statement

In a switch statement, a variable is successively tested against a list or integer or character constants.

If a match is found, a statement or block of statement is executed.

The default part of the switch is executed if no matches are found.

The switch statement

According to Herbert Schildt (1992), there are three important things to know about switch statements:– 1. The switch differs from if statements in such a way

that switch can only test fro equality whereas if can evaluate a relational or logical expression.

– 2. No two case constants in the same switch can have identical values. Of course, a switch statement enclosed by an outer switch may have case constant that are the same.

The switch statement

– 3. If character constants are used in the switch, they are automatically converted to their integer values.

Note: The break statement is used to terminate the statement associated with each case constant. It is a C keyword which means that at that point of execution, you should jump to the end of the switch statement by the symbol }.

The Nested Switch Statement

The general form of the nested switch statement is:

The Nested Switch Statement

switch (variable){

case constant:{switch (variable) {

case constant1:statement sequence_1;break;

case constant2:statement_sequence_2;break;

}break;}

case constant2:statement sequence;break;

default:statement sequence;

}

Recommended