Why conditional logic is needed - Performance Analysis
We want to see how adding choices in code affects how long it takes to run.
Does checking conditions slow down the program as input grows?
Analyze the time complexity of the following code snippet.
#include <stdio.h>
void checkNumbers(int arr[], int n) {
for (int i = 0; i < n; i++) {
if (arr[i] % 2 == 0) {
printf("%d is even\n", arr[i]);
} else {
printf("%d is odd\n", arr[i]);
}
}
}
This code goes through each number and prints if it is even or odd.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The for-loop that checks each number once.
- How many times: Exactly once per item in the array, so n times.
As the list gets bigger, the program checks more numbers one by one.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 10 checks |
| 100 | About 100 checks |
| 1000 | About 1000 checks |
Pattern observation: The work grows directly with the number of items.
Time Complexity: O(n)
This means the time to finish grows in a straight line with the input size.
[X] Wrong: "Adding an if-else inside the loop doubles the time complexity."
[OK] Correct: The if-else only adds a small fixed check each time, so it does not change how the total time grows with input size.
Understanding how conditions inside loops affect time helps you explain your code clearly and shows you know how programs scale.
"What if we added a nested loop inside the if condition? How would the time complexity change?"
Practice
if statements in C programs?Solution
Step 1: Understand the purpose of conditional logic
Conditional logic allows a program to choose different actions depending on conditions.Step 2: Compare with other options
Repeating code is done with loops, storing values uses arrays or variables, and defining types uses structs or typedefs.Final Answer:
To make decisions based on different conditions -> Option BQuick Check:
Conditional logic = decision making [OK]
- Confusing loops with conditionals
- Thinking variables store multiple values
- Mixing data types with logic
if statement in C?Solution
Step 1: Recall C syntax for if statements
In C, conditions must be inside parentheses and code inside braces.Step 2: Check each option
if (condition) { /* code */ } matches the correct syntax: if (condition) { /* code */ }.Final Answer:
if (condition) { /* code */ } -> Option AQuick Check:
Parentheses around condition = correct syntax [OK]
- Omitting parentheses around condition
- Using square brackets instead of parentheses
- Adding 'then' keyword which C does not use
int x = 10;
if (x > 5) {
printf("Big\n");
} else {
printf("Small\n");
}Solution
Step 1: Evaluate the condition
The variable x is 10, which is greater than 5, so the condition (x > 5) is true.Step 2: Determine which branch runs
Since the condition is true, the code inside the if block runs, printing "Big".Final Answer:
Big -> Option DQuick Check:
10 > 5 is true, so prints Big [OK]
- Confusing which block runs on true
- Ignoring the newline character
- Thinking else block runs when condition is true
int num = 7;
if num > 5 {
printf("Yes\n");
} else {
printf("No\n");
}Solution
Step 1: Check the if statement syntax
The condition in an if statement must be inside parentheses in C.Step 2: Identify the error
The code uses if num > 5 { ... } without parentheses, which is invalid syntax.Final Answer:
Missing parentheses around the condition -> Option AQuick Check:
If condition needs ( ) in C [OK]
- Forgetting parentheses in if condition
- Adding semicolon after if line incorrectly
- Misplacing braces
Solution
Step 1: Understand the condition for even numbers
A number is even if dividing by 2 leaves remainder 0, checked by num % 2 == 0.Step 2: Check each option's condition
if (num % 2 == 0) { printf("Even\n"); } else { printf("Odd\n"); } correctly uses num % 2 == 0. if (num / 2 == 0) { printf("Even\n"); } else { printf("Odd\n"); } uses division instead of modulo. if (num % 2 = 0) { printf("Even\n"); } else { printf("Odd\n"); } uses assignment (=) instead of comparison (==). if (num % 2 != 0) { printf("Even\n"); } else { printf("Odd\n"); } reverses the logic.Final Answer:
if (num % 2 == 0) { printf("Even\n"); } else { printf("Odd\n"); } -> Option CQuick Check:
Modulo 2 equals 0 means even [OK]
- Using = instead of == in condition
- Using division instead of modulo
- Reversing if-else logic
Ready to prove it?
Pass the test and this pattern moves unknown
