Bird
Raised Fist0
Cprogramming~5 mins

Nested conditional statements

Choose your learning style10 modes available
Introduction

Nested conditional statements help you make decisions inside other decisions. This lets your program check many things step by step.

When you want to check if a number is positive, negative, or zero, and then check if it is even or odd.
When you need to decide a grade based on score ranges and then give special messages for top scores.
When you want to check if a user is logged in, and then check their role to show different options.
When you want to check weather conditions and then decide what clothes to wear based on temperature.
Syntax
C
if (condition1) {
    if (condition2) {
        // code if both condition1 and condition2 are true
    } else {
        // code if condition1 is true but condition2 is false
    }
} else {
    // code if condition1 is false
}

You can put one if statement inside another to check more conditions.

Use braces { } to keep your code clear and avoid mistakes.

Examples
This checks if x is positive, then checks if it is even or odd.
C
if (x > 0) {
    if (x % 2 == 0) {
        printf("Positive even number\n");
    } else {
        printf("Positive odd number\n");
    }
} else {
    printf("Not a positive number\n");
}
This checks if the score is 90 or above, then if it is exactly 100.
C
if (score >= 90) {
    if (score == 100) {
        printf("Perfect score!\n");
    } else {
        printf("Great job!\n");
    }
} else {
    printf("Keep trying!\n");
}
Sample Program

This program asks the user for a number. It first checks if the number is positive, negative, or zero. If positive, it checks if it is even or odd and prints the result.

C
#include <stdio.h>

int main() {
    int number;
    printf("Enter an integer: ");
    scanf("%d", &number);

    if (number > 0) {
        if (number % 2 == 0) {
            printf("%d is a positive even number.\n", number);
        } else {
            printf("%d is a positive odd number.\n", number);
        }
    } else if (number < 0) {
        printf("%d is a negative number.\n", number);
    } else {
        printf("You entered zero.\n");
    }

    return 0;
}
OutputSuccess
Important Notes

Always test your nested conditions with different inputs to make sure all paths work.

Too many nested conditions can make code hard to read. Keep it simple when possible.

Summary

Nested conditionals let you check one condition inside another.

Use them to make detailed decisions step by step.

Keep your code clear with braces and indentation.

Practice

(1/5)
1.

What does a nested conditional statement in C allow you to do?

Choose the best description.

easy
A. Define a function inside another function
B. Check a condition inside another condition
C. Repeat a block of code multiple times
D. Create a variable that changes type

Solution

  1. Step 1: Understand the meaning of nested conditionals

    Nested conditionals mean putting one if or else if statement inside another if or else if block.
  2. Step 2: Compare with other options

    Repeating code is done by loops, not conditionals. Functions inside functions or variable type changes are unrelated.
  3. Final Answer:

    Check a condition inside another condition -> Option B
  4. Quick Check:

    Nested conditionals = condition inside condition [OK]
Hint: Nested means inside another condition [OK]
Common Mistakes:
  • Confusing nested conditionals with loops
  • Thinking nested means changing variable types
  • Mixing nested conditionals with function definitions
2.

Which of the following is the correct syntax for a nested if statement in C?

if (x > 0) {
    if (y < 10) {
        // code
    }
}
easy
A. if x > 0 { if (y < 10) { /* code */ } }
B. if (x > 0) if (y < 10) { /* code */ }
C. if (x > 0) { if y < 10 { /* code */ } }
D. if (x > 0) { if (y < 10) { /* code */ } }

Solution

  1. Step 1: Check correct use of braces and parentheses

    In C, conditions must be inside parentheses and blocks inside braces. if (x > 0) { if (y < 10) { /* code */ } } uses both correctly.
  2. Step 2: Identify syntax errors in other options

    if (x > 0) if (y < 10) { /* code */ } misses braces for outer if block. if (x > 0) { if y < 10 { /* code */ } } misses parentheses around y < 10. if x > 0 { if (y < 10) { /* code */ } } misses parentheses around x > 0.
  3. Final Answer:

    if (x > 0) { if (y < 10) { /* code */ } } -> Option D
  4. Quick Check:

    Correct syntax = if (x > 0) { if (y < 10) { /* code */ } } [OK]
Hint: Use parentheses for conditions and braces for blocks [OK]
Common Mistakes:
  • Omitting parentheses around conditions
  • Forgetting braces for code blocks
  • Mixing syntax from other languages
3.

What is the output of this C code?

int x = 5, y = 8;
if (x > 0) {
    if (y < 10) {
        printf("A\n");
    } else {
        printf("B\n");
    }
} else {
    printf("C\n");
}
medium
A. A
B. B
C. C
D. No output

Solution

  1. Step 1: Evaluate outer if condition

    x = 5, which is greater than 0, so the outer if block runs.
  2. Step 2: Evaluate inner if condition

    y = 8, which is less than 10, so the inner if block runs and prints "A".
  3. Final Answer:

    A -> Option A
  4. Quick Check:

    x > 0 and y < 10 prints A [OK]
Hint: Check outer condition first, then inner [OK]
Common Mistakes:
  • Ignoring inner condition
  • Confusing else blocks
  • Assuming no output if outer condition true
4.

Find the error in this nested conditional code snippet:

if (a > 10)
    if (b < 5)
        printf("X\n");
    else
        printf("Y\n");
medium
A. Missing braces causing else to pair with wrong if
B. Incorrect use of semicolons after if statements
C. Using printf without including stdio.h
D. Variables a and b are not declared

Solution

  1. Step 1: Analyze the if-else pairing

    Without braces, the else pairs with the nearest if, which is the inner if. This may cause confusion or unexpected behavior.
  2. Step 2: Identify the fix

    Adding braces around the outer if block ensures the else pairs correctly and code is clear.
  3. Final Answer:

    Missing braces causing else to pair with wrong if -> Option A
  4. Quick Check:

    Braces fix else pairing [OK]
Hint: Always use braces to avoid else ambiguity [OK]
Common Mistakes:
  • Assuming else pairs with outer if
  • Ignoring braces importance
  • Thinking semicolons cause this error
5.

Given the code below, what will be printed if score = 75?

if (score >= 90) {
    printf("Grade A\n");
} else {
    if (score >= 70) {
        if (score >= 80) {
            printf("Grade B+\n");
        } else {
            printf("Grade B\n");
        }
    } else {
        printf("Grade C\n");
    }
}
hard
A. Grade B+
B. Grade C
C. Grade B
D. Grade A

Solution

  1. Step 1: Check first if condition

    score = 75, which is not >= 90, so skip first if block.
  2. Step 2: Check second if condition

    score >= 70 is true, so enter second if block.
  3. Step 3: Check nested if inside second block

    score >= 80 is false (75 < 80), so else block runs printing "Grade B".
  4. Final Answer:

    Grade B -> Option C
  5. Quick Check:

    75 >= 70 but < 80 prints Grade B [OK]
Hint: Check conditions top-down carefully [OK]
Common Mistakes:
  • Confusing >= 70 and >= 80 checks
  • Skipping nested else block
  • Assuming 75 is Grade B+
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard