Nested conditional statements help you make decisions inside other decisions. This lets your program check many things step by step.
Nested conditional statements
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.
x is positive, then checks if it is even or odd.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"); }
if (score >= 90) { if (score == 100) { printf("Perfect score!\n"); } else { printf("Great job!\n"); } } else { printf("Keep trying!\n"); }
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.
#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; }
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.
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
What does a nested conditional statement in C allow you to do?
Choose the best description.
Solution
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.Step 2: Compare with other options
Repeating code is done by loops, not conditionals. Functions inside functions or variable type changes are unrelated.Final Answer:
Check a condition inside another condition -> Option BQuick Check:
Nested conditionals = condition inside condition [OK]
- Confusing nested conditionals with loops
- Thinking nested means changing variable types
- Mixing nested conditionals with function definitions
Which of the following is the correct syntax for a nested if statement in C?
if (x > 0) {
if (y < 10) {
// code
}
}Solution
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.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.Final Answer:
if (x > 0) { if (y < 10) { /* code */ } } -> Option DQuick Check:
Correct syntax = if (x > 0) { if (y < 10) { /* code */ } } [OK]
- Omitting parentheses around conditions
- Forgetting braces for code blocks
- Mixing syntax from other languages
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");
}Solution
Step 1: Evaluate outer if condition
x = 5, which is greater than 0, so the outer if block runs.Step 2: Evaluate inner if condition
y = 8, which is less than 10, so the inner if block runs and prints "A".Final Answer:
A -> Option AQuick Check:
x > 0 and y < 10 prints A [OK]
- Ignoring inner condition
- Confusing else blocks
- Assuming no output if outer condition true
Find the error in this nested conditional code snippet:
if (a > 10)
if (b < 5)
printf("X\n");
else
printf("Y\n");Solution
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.Step 2: Identify the fix
Adding braces around the outer if block ensures the else pairs correctly and code is clear.Final Answer:
Missing braces causing else to pair with wrong if -> Option AQuick Check:
Braces fix else pairing [OK]
- Assuming else pairs with outer if
- Ignoring braces importance
- Thinking semicolons cause this error
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");
}
}Solution
Step 1: Check first if condition
score = 75, which is not >= 90, so skip first if block.Step 2: Check second if condition
score >= 70 is true, so enter second if block.Step 3: Check nested if inside second block
score >= 80 is false (75 < 80), so else block runs printing "Grade B".Final Answer:
Grade B -> Option CQuick Check:
75 >= 70 but < 80 prints Grade B [OK]
- Confusing >= 70 and >= 80 checks
- Skipping nested else block
- Assuming 75 is Grade B+
Ready to prove it?
Pass the test and this pattern moves unknown
