C language has four types of control statement described below:
1. if statement
The if statement is a powerful decision making statement and is used to control the flow of execution of statements. It is basically a two way decision statement and is used in conjunction with an expression. It takes the following form: if (test condition)
The if statement may be implemented in different forms depending on the complexity of conditions to be tested. The different forms are:
a. Simple if statement
The general form of simple if statement is
If (test expression)
The ‘statement block’ may be a single statement or a group of statements. If the test expression is true, the statement-block will be executed; otherwise the statement block will be skipped and the execution will jump to the statement-x.
b. if…else statement
The if…else statement is an extension of the simple if statement. The general form is
if (test expression)
True block statement(s)
False block statement(s)
If the test expression is true, then the true-block statement(s), immediately following the if statements are executed; otherwise, the false-block statement(s) are executed. In either case, either true-block or false-block will be executed, not both.
c. nested if…else statement
When a series of decisions are involved, we may have to use more than one if…else statement in nested form as shown bellow:
if (test condition-1)
if (test condition-2)
The logic of execution is illustrated. If the condition-1 is false, the statement-3 will be executed; otherwise it continues to perform the second test. If the condition-2 is true, the statement-1 will be evaluated; otherwise the statement-2 will be evaluated and then the control is transferred to the statement-x.
d. else if ladder
There is another way of putting ifs together when multipath decisions are involved. A multipath decision is a chain of ifs in which the statement associated with each else is an if. It takes the following general form:
if (condition 1)
else if (condition 2)
else if (condition 3)
statement – x;
This construct is known as the else if ladder. The conditions are evaluated from the top (of the ladder), downwards. As soon as a true condition is found, the statement is associated with it is executed and the control is transferred to the statement – x (skipping the rest of the ladder). When all the n conditions become false, then the final else containing the default statement will be executed.
2. The switch statement
C has a built in multiway decision statement known as a switch. The switch statement teststhe value of a given expression against a list of case values and when a match is found, a block of statements associated with that case is executed. The general form of switch statement is as shown bellow:
statement - x;
The expression is an integer expression or characters, Value-1, Value-2…..are constants and constant expressions and are known as case labels. Each of these values is unique within a switch statement. block-1,block-2….are statement lists and may contain zero or more statements. There is no need to put braces around these blocks. Note that case labels end with a colon (:).
The break statement at the end of each block signals the end of a particular case and cause an exit from the switch statement, transferring the control to the statement-x following the switch.
The default is an optional case. When present, it will be executed if the value of the expression does not match with any of the case values. If not present, no action takes place if all matches fail and the control goes to the statement-x.
3. Conditional operator statement
Conditional operator is a combination of ? and :, and takes three operands. It is useful for making two-way decisions. The general form of use of the conditional operator is as follows:
conditional expression ? expression1 : expression2
The conditional expression is evaluated first. If the result is nonzero, expression1 is evaluated and is returned as the value of the conditional expression. Otherwise expression2 is evaluated and its value is returned.
4. The Goto statement
C supports the goto statement to branch unconditionally from one point to another in the program. The goto requires a label in order to identify the place where where the branch is to be made. A label is any valid variable name, and must be followed by a colon. The label is placed immediately before the statement where the control is to be transferred. The general form of goto and label statements are shown below:
; label: labe
Statement; goto label;
The label: can be anywhere in the program either before or after the goto label; statement