C++ Flow Control
C++ Flow Control
C++ if...else
The if statement can have an optional else clause. Its syntax is:
if (condition)
{
1
// block of code if condition is true
}
else
{
// block of code if condition is false
}
The if..else statement evaluates the condition inside the parenthesis.
Working of if...else Statement
If the condition evaluates true,
the code inside the body of if is executed
the code inside the body of else is skipped from execution
If the condition evaluates false,
the code inside the body of else is executed
the code inside the body of if is skipped from execution
Example 2: C++ if...else Statement
// Program to check whether an integer is positive or negative
// This program considers 0 as a positive number
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
if (number >= 0) {
cout << "You entered a positive integer: " << number << endl;
}
else {
cout << "You entered a negative integer: " << number << endl;
}
cout << "This line is always printed.";
return 0;
}
Output 1
Enter an integer: 4
You entered a positive integer: 4.
This line is always printed.
Output 2
Enter an integer: -4
You entered a negative integer: -4.
This line is always printed.
2
else {
// code block 3
}
Here,
If condition1 evaluates to true, the code block 1 is executed.
If condition1 evaluates to false, then condition2 is evaluated.
If condition2 is true, the code block 2 is executed.
If condition2 is false, the code block 3 is executed.
Working of if...else if...else Statement
How if...else if...else Statement Works
Note: There can be more than one else if statement but only one if and else statements.
Example 3: C++ if...else...else if
// Program to check whether an integer is positive, negative or zero
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
if (number > 0) {
cout << "You entered a positive integer: " << number << endl;
}
else if (number < 0) {
cout << "You entered a negative integer: " << number << endl;
}
else {
cout << "You entered 0." << endl;
}
cout << "This line is always printed.";
return 0;
}
Output 1
Enter an integer: 1
You entered a positive integer: 1.
This line is always printed.
Output 2
Enter an integer: -2
You entered a negative integer: -2.
This line is always printed.
Output 3
Enter an integer: 0
You entered 0.
This line is always printed.
3
// statements
// inner if statement
if (condition2) {
// statements
}
}
Notes:
We can add else and else if statements to the inner if statement as required.
The inner if statement can also be inserted inside the outer else or else if statements (if they exist).
We can nest multiple layers of if statements.
Example 4: C++ Nested if
// C++ program to find if an integer is positive, negative or zero
// using nested if statements
#include <iostream>
using namespace std;
int main() {
int num;
cout << "Enter an integer: ";
cin >> num;
// outer if condition
if (num != 0)
{
// inner if condition
if (num > 0)
{
cout << "The number is positive." << endl;
}
// inner else condition
else
{
cout << "The number is negative." << endl;
}
}
// outer else condition
else
{
cout << "The number is 0 and it is neither positive nor negative." << endl;
}
cout << "This line is always printed." << endl;
return 0;
}
Output 1
Enter an integer: 35
The number is positive.
This line is always printed.
Output 2
Enter an integer: -35
The number is negative.
This line is always printed.
4
Output 3
Enter an integer: 0
The number is 0 and it is neither positive nor negative.
This line is always printed.
In the above example,
Body of if...else With Only One Statement
If the body of if...else has only one statement, you can omit { } in the program.
For example, you can replace
int number = 5;
if (number > 0) {
cout << "The number is positive." << endl;
}
else {
cout << "The number is negative." << endl;
}
cout << "This line is always printed." << endl;
with
int number = 5;
if (number > 0)
cout << "The number is positive." << endl;
else
cout << "The number is negative." << endl;
cout << "This line is always printed." << endl;
5
cout << "You " << result << " the exam.";
return 0;
}
Output 1
Enter your marks: 80
You passed the exam.
Output 2
Enter your marks: 39.5
You failed the exam.
Example 2:
#include <iostream>
#include <string>
using namespace std;
int main() {
int number = -4;
string result;
// Using ternary operator
result = (number > 0) ? "Positive Number!" : "Negative Number!";
cout << result << endl;
return 0;
}
Output
Negative Number!
Note: We should only use the ternary operator if the resulting statement is short.