Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Control Flow/ Structure: Prepared By: Ms. Sa Sokngim

Download as pdf or txt
Download as pdf or txt
You are on page 1of 46

Chapter 3:

Control Flow/ Structure

PREPARED BY: MS. SA SOKNGIM


Content

1. Decision Making
2. Loops
3. Break and Continue Statement
4. Switch… case Statement
5. goto and label Statement
1. Decision Making

 Decision making is used to


specify the order in which
statements are executed.

• Decision making in a C program using:


• if statement
• if…else statement
• if…else if…else statement
• nested if...else statement
• Switch case Statement
1.1 if statement

if (testExpression)
{
// statements
}
Example: if statement
// Program to display a number if user enters negative number
// If user enters positive number, that number won't be displayed
#include <stdio.h>
int main()
{
int number;
printf("Enter an integer: ");
scanf("%d", &number);

// Test expression is true if number is less than 0


if (number < 0) {
printf("You entered %d.\n", number);
}

printf("The if statement is easy.");

return 0;
}
1.2 if...else statement
 The if...else statement executes some code if the test expression
is true (nonzero) and some other code if the test expression is
false (0).

Syntax of if...else
if (testExpression) {
// codes inside the body of if
}else {
// codes inside the body of else
}
Example: if...else statement
// Program to check whether an integer entered by the user is odd or even

#include <stdio.h>
int main()
{
int number;
printf("Enter an integer: ");
scanf("%d",&number);

// True if remainder is 0
if( number%2 == 0 )
printf("%d is an even integer.",number);
else
printf("%d is an odd integer.",number);
return 0;
}
1.3 if...else if....else Statement

 The if...else statement executes two different codes


depending upon whether the test expression is true or false.
Sometimes, a choice has to be made from more than 2
possibilities.

 The if...else if…else statement allows you to check for


multiple test expressions and execute different codes for
more than two conditions.
Syntax of if...else if....else statement.
if (testExpression1) {

// statements to be executed if testExpression1 is true

} else if(testExpression2) {

// statements to be executed if testExpression1 is false and


testExpression2 is true

} else if (testExpression 3) {

// statements to be executed if testExpression1 and


testExpression2 is false and testExpression3 is true

} else {

// statements to be executed if all test expressions are false

}
Example: if...else if....else statement
// Program to relate two integers //checks if number1 is greater than
using =, > or < number2.
#include <stdio.h> else if (number1 > number2) {
int main(){ printf("Result: %d > %d",
int number1, number2; number1, number2);
}
printf("Enter two integers: ");
scanf("%d %d", &number1, // if both test expression is false
&number2); else {
//checks if two integers are printf("Result: %d < %d",
equal. number1, number2);
if(number1 == number2){ }
printf("Result: %d = %d“, return 0;
number1,number2); }
}
1.4 Nested if else statement

 Nested if else statement is same like if else


statement, where new block of if else statement is
defined in existing if or else block statement.

 Used when user want to check more than one


conditions at a time.
Syntax of Nested If else Statement

if(condition is true){
if(condition is true){
statement;
}else{
statement;
}
}else{
statement;
}
Example of Nested if else Statement
#include <stdio.h>
void main(){
char username;
int password;

printf("Username:");
scanf("%c",&username);
printf("Password:");
scanf("%d",&password);

if(username=='a'){
if(password==12345){
printf("Login successful");
}else{
printf("Password is incorrect, Try again.");
}
}else{
printf("Username is incorrect, Try again.");
}
}
2. Loops
 Loops are used in programming to repeat a specific block until some end
condition is met.

 There are three loops in C programming:

o for loop

o while loop

o do...while loop

o Nested loops
2.1 for Loop

 The syntax of a for loop is:

for (initializationStatement; testExpression; updateStatement)

// codes

}
for loop Flowchart
Example: for loop

// Program to calculate the sum of // for loop terminates when n is less


first n natural numbers than count
// Positive integers 1,2,3...n are for(count = 1; count <= n; ++count)
known as natural numbers {
sum += count;
#include <stdio.h> }
int main(){ printf("Sum = %d", sum);
int n, count, sum = 0; return 0;

printf("Enter a positive integer: "); }

scanf("%d", &n);
2.2 while loop

 The syntax of a while loop is:

while (testExpression)
{
//codes
}
Example: while loop
/ Program to find factorial of // loop terminates when number is less
a number than or equal to 0
// For a positive integer n, while (number > 0) {
factorial = 1*2*3...n // factorial = factorial*number;
factorial *= number;
#include <stdio.h> --number;
int main(){ }
int number; printf("Factorial= %lld", factorial);

long factorial; return 0;


}
printf("Enter an integer: ");
scanf("%d",&number);
factorial = 1;
2.3 do...while loop

 The do..while loop is similar to the while loop with one


important difference.

 The body of do...while loop is executed once, before


checking the test expression.

 The do...while loop is executed at least once.


do...while loop Syntax

The syntax of a do while loop is:


do
{
// codes
}
while (testExpression);
Example: do...while loop
// Program to add numbers until user enters zero
#include <stdio.h>
int main() {
double number, sum = 0;
// loop body is executed at least once
do{
printf("Enter a number: ");
scanf("%lf", &number);
sum += number;
}while(number != 0.0);
printf("Sum = %.2lf",sum);
return 0;
}
2.4 Nested loops

 C programming allows to use one loop inside another


loop.
 Syntax for loop

for ( init; condition; increment ) {

for ( init; condition; increment ) {


statement(s);
}

statement(s);
}
2.4 Nested loops (Con)

 Syntax while loop

while(condition) {

while(condition) {
statement(s);
}

statement(s);
}
2.4 Nested loops (Con)

 Syntax do while loop

do {

statement(s);

do {
statement(s);
}while( condition );

}while( condition );
Example of Nested Loops
#include <stdio.h>

int main()
{
int n, c, k;

printf("Enter number of rows\n");


scanf("%d",&n);

for ( c = 1 ; c <= n ; c++ ){


for( k = 1 ; k <= c ; k++ )
printf("*");

printf("\n");
}
return 0;
}
3. Break And Continue Statement

 What is BREAK meant?

 What is CONTINUE meant?


3.1 Break Statement

 The break statement terminates the loop immediately when


it is encountered.

 The break statement is used with decision making


statement such as if...else.

 Syntax of break statement

break;
Flowchart Of Break Statement
How break statement works?
Example: break statement
// Program to calculate the sum // If user enters negative
of maximum of 10 numbers number, loop is terminated
// Calculates sum until user if(number < 0.0) {
enters positive number break;
# include <stdio.h> }
int main() { // sum = sum + number;
int i; sum += number;

double number, sum = 0.0; }


printf("Sum = %.2lf",sum);
for(i=1; i <= 10; ++i) {
return 0;
printf("Enter a n%d: ",i);
}
scanf("%lf",&number);
3.2 Continue Statement

 The continue statement skips some statements inside the loop.

 The continue statement is used with decision making statement


such as if...else.

 Syntax of continue Statement

 continue;
Flowchart of Continue Statement
How Continue Statement Works?
Example: continue statement

// Program to calculate sum of // If user enters negative


maximum of 10 numbers number, loop is terminated
// Negative numbers are skipped if(number < 0.0) {
from calculation
continue;
# include <stdio.h>
}
int main(){
// sum = sum + number;
int i; sum += number;
double number, sum = 0.0; }
for(i=1; i <= 10; ++i) {
printf("Sum = %.2lf",sum);
printf("Enter a n%d: ",i); return 0;
scanf("%lf",&number); }
4. Switch...Case Statement
 The if...else if…else statement allows you to execute a block code among
many alternatives. If you are checking on the value of a single variable in
if...else if…else statement, it is better to use switch statement.

 The switch statement is often faster than nested if...else (not always).
Also, the syntax of switch statement is cleaner and easy to understand.
Syntax of switch...case
switch (n){
case constant1:
// code to be executed if n is equal to constant1;
break;
case constant2:
// code to be executed if n is equal to constant2;
break;
.
.
.
default:
// code to be executed if n doesn't match any constant
}
Switch Statement Flowchart
Example: switch Statement
// Program to create a simple calculator
// Performs addition, subtraction, multiplication or division
depending the input from user
# include <stdio.h>
int main() {
char operator;
double firstNumber,secondNumber;
printf("Enter an operator (+, -, *,): ");
scanf("%c", &operator);
printf("Enter two operands: ");
scanf("%lf %lf",&firstNumber, &secondNumber);
switch(operator) {
case '+':
printf("%.1lf + %.1lf = %.1lf",firstNumber, secondNumber, firstNumber+secondNumber);
break;
case '-':
printf("%.1lf - %.1lf = %.1lf",firstNumber, secondNumber, firstNumber-secondNumber);
break;
case '*':
printf("%.1lf * %.1lf = %.1lf",firstNumber, secondNumber, firstNumber*secondNumber);
break;
case '/':
printf("%.1lf / %.1lf = %.1lf",firstNumber, secondNumber, firstNumber/firstNumber);
break;
// operator is doesn't match any case constant (+, -, *, /)
default:
printf("Error! operator is not correct");
}
return 0; }
5. goto Statement

 The goto statement is used to alter the normal sequence of a C


program.
Syntax of goto Statement

goto label;
... .. ...
... .. ...
... .. ...
label:
statement;
What is Label?

 The label is an identifier. When goto statement is encountered,


control of the program jumps to label: and starts executing the code.
Example: goto Statement
// Program to calculate the sum and average of maximum of 5
numbers
// If user enters negative number, the sum and average of
previously entered positive number is displayed
# include <stdio.h>
int main(){
const int maxInput = 5;
int i;
double number, average, sum=0.0;
for(i=1; i<=maxInput; ++i){
printf("%d. Enter a number: ", i);
scanf("%lf",&number);
Example: goto Statement
// If user enters negative number, flow of program moves to label
jump
if(number < 0.0)
goto jump;

sum += number; // sum = sum+number;


}
jump:

average=sum/(i-1);
printf("Sum = %.2f\n", sum);
printf("Average = %.2f", average);
return 0;
}

You might also like