Start learning free

LESSON 68 OF 409 · CONDITIONAL STATEMENTS

If-else Statements in C++

Lesson Read the full explanation

Many times in our life, not only we choose to do something if a condition is met, but also choose to do something different if that condition is not met. For example:

If I'm tired:
    I take a nap
Otherwise:
    I start coding

If-else Statements:

When a condition for an if statement is true, the block of code following it is executed. What about when that condition is false? Normally nothing would happen.

With an else statement, we can have an alternate block of code to be executed. For example:

bool amTired = false;
if(amTired) {
    cout << "I take a nap" << endl;
}
else {
    cout << "I start coding" << endl;
}

The code above prints "I start coding" since the expression inside the if evaluates to false and so C++ will enter the else statement and execute the code inside it.

An else statement cannot exist without a corresponding if statement. This combination is refered to as an if-else statement.


Assignment
Follow the Coding Tutorial and let's practice with if-else statements!


Hint
Look at the examples above if you get stuck.


STEP 1 OF 1
    Ctrl + Enter to check

    C++ · CONDITIONAL STATEMENTS

    If Else in C++, explained

    Introduction

    If-else statements are fundamental control structures in C++ that allow you to execute different blocks of code based on certain conditions. They are essential for making decisions in your programs, enabling your code to react differently under various circumstances. This concept is widely used in scenarios such as user input validation, game development, and any situation where a program needs to make a choice.

    Understanding the Basics

    Before diving into more complex examples, it's crucial to understand the basic syntax and functionality of if-else statements. An if-else statement evaluates a condition inside the parentheses. If the condition is true, the code block inside the if statement is executed. If the condition is false, the code block inside the else statement is executed.

    bool condition = true;
    if (condition) {
        // This block runs if condition is true
        cout << "Condition is true" << endl;
    } else {
        // This block runs if condition is false
        cout << "Condition is false" << endl;
    }
    

    Main Concepts

    The key concept behind if-else statements is conditional execution. You can chain multiple conditions using else if statements to handle more complex decision-making processes.

    int number = 10;
    if (number > 0) {
        cout << "Number is positive" << endl;
    } else if (number < 0) {
        cout << "Number is negative" << endl;
    } else {
        cout << "Number is zero" << endl;
    }
    

    In this example, the program checks if the number is positive, negative, or zero and prints the corresponding message.

    Examples and Use Cases

    Let's look at some practical examples to understand how if-else statements can be used in different contexts.

    Example 1: Checking Age for Voting Eligibility

    int age = 18;
    if (age >= 18) {
        cout << "You are eligible to vote." << endl;
    } else {
        cout << "You are not eligible to vote." << endl;
    }
    

    In this example, the program checks if a person is eligible to vote based on their age.

    Example 2: Grading System

    int score = 85;
    if (score >= 90) {
        cout << "Grade: A" << endl;
    } else if (score >= 80) {
        cout << "Grade: B" << endl;
    } else if (score >= 70) {
        cout << "Grade: C" << endl;
    } else if (score >= 60) {
        cout << "Grade: D" << endl;
    } else {
        cout << "Grade: F" << endl;
    }
    

    This example demonstrates a simple grading system where the program assigns a grade based on the score.

    Common Pitfalls and Best Practices

    When using if-else statements, it's important to avoid common mistakes such as:

    • Forgetting to use curly braces for multi-line blocks.
    • Not properly indenting code, which can make it hard to read.
    • Using too many nested if-else statements, which can make the code complex and hard to maintain.

    Best practices include:

    • Keeping conditions simple and readable.
    • Using comments to explain the purpose of each condition.
    • Refactoring complex nested if-else statements into separate functions.

    Advanced Techniques

    For more advanced decision-making, you can use switch statements or even combine multiple conditions using logical operators.

    char grade = 'B';
    switch (grade) {
        case 'A':
            cout << "Excellent!" << endl;
            break;
        case 'B':
            cout << "Well done!" << endl;
            break;
        case 'C':
            cout << "Good job!" << endl;
            break;
        default:
            cout << "Invalid grade" << endl;
    }
    

    Switch statements can be more efficient and readable when dealing with multiple discrete values.

    Code Implementation

    Here is a complete example that demonstrates the use of if-else statements in a real-world scenario:

    #include <iostream>
    using namespace std;
    
    int main() {
        int temperature;
        cout << "Enter the current temperature: ";
        cin >> temperature;
    
        if (temperature > 30) {
            cout << "It's hot outside." << endl;
        } else if (temperature >= 20 && temperature <= 30) {
            cout << "The weather is nice." << endl;
        } else {
            cout << "It's cold outside." << endl;
        }
    
        return 0;
    }
    

    This program asks the user to enter the current temperature and then prints a message based on the input.

    Debugging and Testing

    When debugging if-else statements, ensure that all possible conditions are covered. Use print statements to check the flow of execution and verify that the correct blocks of code are being executed. Writing test cases for different input values can help ensure that your if-else logic is working correctly.

    #include <cassert>
    
    void testTemperature() {
        assert(getWeatherMessage(35) == "It's hot outside.");
        assert(getWeatherMessage(25) == "The weather is nice.");
        assert(getWeatherMessage(15) == "It's cold outside.");
    }
    
    int main() {
        testTemperature();
        cout << "All tests passed!" << endl;
        return 0;
    }
    

    In this example, we use assertions to test the getWeatherMessage function with different temperature values.

    Thinking and Problem-Solving Tips

    When approaching problems that require if-else statements, consider the following strategies:

    • Break down the problem into smaller, manageable parts.
    • Write pseudocode to outline the logic before implementing it in C++.
    • Test your code with different inputs to ensure it handles all possible scenarios.

    Practice is key to mastering if-else statements. Try solving coding exercises and building small projects to reinforce your understanding.

    Conclusion

    If-else statements are a fundamental part of programming in C++. They allow you to make decisions and execute different blocks of code based on conditions. By mastering if-else statements, you can write more dynamic and responsive programs. Keep practicing and exploring more complex scenarios to enhance your skills.

    Additional Resources

    For further reading and practice, consider the following resources:

    Keep going with C++About 340 step-by-step lessons, from your first line of code to coding interviews. Free to start.
    Start learning free