Control Flow
Now we're stepping into the control flow of C, which is how we make decisions in our code and control the order in which statements execute. Control flow gives your program the ability to branch, loop, and handle decisions based on conditions.
Let’s break it down into two major categories: decision-making and loops.
1. Decision-Making:
In C, decision-making statements allow you to execute a block of code only if a certain condition is true. The main decision-making structures are:
if
statementelse
statementelse if
ladderswitch
statement
a. if
statement
The if
statement is used to check a condition. If the condition is true, the block of code inside the if
statement is executed.
Syntax:
if (condition) {
// code to execute if the condition is true
}
Example:
int age = 20;
if (age >= 18) {
printf("You are an adult.\n");
}
The condition
(age >= 18)
is true, so"You are an adult."
will be printed.
b. else
statement
The else
block executes when the if
condition is false.
Syntax:
if (condition) {
// code if condition is true
} else {
// code if condition is false
}
Example:
int age = 16;
if (age >= 18) {
printf("You are an adult.\n");
} else {
printf("You are a minor.\n");
}
Since
age
is 16, the else block will execute, printing"You are a minor."
c. else if
ladder
If you need multiple conditions to check, you can use else if
.
Syntax:
if (condition1) {
// code if condition1 is true
} else if (condition2) {
// code if condition2 is true
} else {
// code if all conditions are false
}
Example:
int marks = 85;
if (marks >= 90) {
printf("Grade: A\n");
} else if (marks >= 80) {
printf("Grade: B\n");
} else if (marks >= 70) {
printf("Grade: C\n");
} else {
printf("Grade: D\n");
}
Here,
marks
is 85, so it prints"Grade: B"
.
d. switch
statement
When you have multiple values to compare a single variable against, a switch
statement can be more efficient than using multiple if-else
statements.
Syntax:
switch (variable) {
case value1:
// code for value1
break;
case value2:
// code for value2
break;
default:
// default code if no case matches
}
Example:
int day = 2;
switch (day) {
case 1:
printf("Monday\n");
break;
case 2:
printf("Tuesday\n");
break;
case 3:
printf("Wednesday\n");
break;
default:
printf("Other day\n");
}
Since
day
is 2, it prints"Tuesday"
.
2. Loops:
Loops allow you to execute a block of code repeatedly until a condition is met. C provides three types of loops:
while
loopdo-while
loopfor
loop
a. while
loop
The while
loop repeats a block of code as long as the condition is true.
Syntax:
while (condition) {
// code to execute while the condition is true
}
Example:
int i = 1;
while (i <= 5) {
printf("%d\n", i); // prints 1, 2, 3, 4, 5
i++;
}
The condition
i <= 5
is checked each time, and the loop stops oncei
exceeds 5.
b. do-while
loop
The do-while
loop is similar to while
, but the code block is executed at least once, even if the condition is false, because the condition is checked after the loop body.
Syntax:
do {
// code to execute
} while (condition);
Example:
int i = 6;
do {
printf("%d\n", i); // prints 6 once
i++;
} while (i <= 5);
Here,
i
starts as 6, so the block runs once, but after that, the conditioni <= 5
is false, so the loop stops.
c. for
loop
The for
loop is used when you know exactly how many times you want to loop.
Syntax:
for (initialization; condition; increment/decrement) {
// code to execute
}
Example:
for (int i = 1; i <= 5; i++) {
printf("%d\n", i); // prints 1, 2, 3, 4, 5
}
The loop runs as long as the condition
i <= 5
is true. After each iteration,i
is incremented by 1.
3. Breaking Out of Loops
You can control the flow of loops using:
break
: Immediately exits the loop.continue
: Skips the current iteration and moves to the next one.
a. break
Example:
for (int i = 1; i <= 5; i++) {
if (i == 3) {
break; // stops the loop when i equals 3
}
printf("%d\n", i); // prints 1, 2
}
b. continue
Example:
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // skips printing when i equals 3
}
printf("%d\n", i); // prints 1, 2, 4, 5
}
Control Flow Summary
if-else
Conditional branching based on true/false
switch
Multi-way branching based on variable value
while
Loop as long as the condition is true
do-while
Loop at least once, then repeat if true
for
Loop a fixed number of times
break
Exit the loop entirely
continue
Skip the current iteration of the loop
Last updated
Was this helpful?