Switch vs if comparison in Javascript - Performance Comparison
We want to see how the time it takes to run code changes when using switch statements versus if statements.
Which one grows faster as we add more conditions?
Analyze the time complexity of the following code snippet.
function checkValueSwitch(value) {
switch(value) {
case 1: return 'One';
case 2: return 'Two';
case 3: return 'Three';
case 4: return 'Four';
default: return 'Other';
}
}
function checkValueIf(value) {
if (value === 1) return 'One';
else if (value === 2) return 'Two';
else if (value === 3) return 'Three';
else if (value === 4) return 'Four';
else return 'Other';
}
This code checks a number and returns a word using either a switch or if-else chain.
Look at how many checks happen before a result is found.
- Primary operation: Comparing the input value to each case or if condition.
- How many times: Up to the number of conditions (4 in this example).
As the number of conditions grows, the checks increase.
| Number of Conditions (n) | Approx. Checks |
|---|---|
| 10 | Up to 10 checks |
| 100 | Up to 100 checks |
| 1000 | Up to 1000 checks |
Pattern observation: The number of checks grows roughly in a straight line with the number of conditions.
Time Complexity: O(n)
This means the time to find the right case grows directly with how many conditions there are.
[X] Wrong: "Switch statements are always faster than if-else chains because they look cleaner."
[OK] Correct: Both switch and if-else check conditions one by one in simple cases, so their time grows the same way as conditions increase.
Understanding how condition checks grow helps you explain your choices clearly and shows you think about code efficiency in real situations.
"What if we replaced the switch with a lookup object (like a dictionary)? How would the time complexity change?"
Practice
Which statement best describes when to use switch instead of if in JavaScript?
Solution
Step 1: Understand the purpose of
switchswitchis designed to compare one value against many possible fixed cases.Step 2: Compare with
ifusageifis better for complex or varied conditions, like ranges or multiple variables.Final Answer:
Useswitchwhen checking one value against many fixed options. -> Option CQuick Check:
switch= fixed value checks [OK]
- Using switch for complex range conditions
- Thinking switch works with multiple variables
- Believing switch can replace all if statements
Which of the following is the correct syntax to start a switch statement in JavaScript?
?
Solution
Step 1: Recall
The correct syntax requires parentheses around the variable:switchsyntaxswitch (variable) {.Step 2: Identify incorrect options
Options A, B, and D have syntax errors like missing parentheses or wrong punctuation.Final Answer:
switch (variable) { -> Option AQuick Check:
Parentheses needed after switch [OK]
- Omitting parentheses after switch
- Using curly braces instead of parentheses
- Adding colon after switch keyword
What will be the output of the following code?
const fruit = 'apple';
switch (fruit) {
case 'banana':
console.log('Yellow');
break;
case 'apple':
console.log('Red');
break;
default:
console.log('Unknown');
}Solution
Step 1: Check the value of
The variablefruitfruitis set to 'apple'.Step 2: Match
Thefruitin the switch casescase 'apple'matches, so it prints 'Red' and then breaks.Final Answer:
Red -> Option BQuick Check:
fruit='apple' matches case 'apple' [OK]
- Forgetting break causes fall-through
- Assuming default runs even if case matches
- Mixing up case values
Find the error in this switch statement and choose the fix:
const day = 3;
switch day {
case 1:
console.log('Monday');
break;
case 3:
console.log('Wednesday');
break;
default:
console.log('Other day');
}Solution
Step 1: Identify syntax error in switch statement
The switch statement is missing parentheses around the variable: it should beswitch (day) {.Step 2: Evaluate other options
Changing case 3 to string is unnecessary; breaks are needed; default cannot be else.Final Answer:
Add parentheses arounddayin switch:switch (day) {-> Option AQuick Check:
switch needs parentheses [OK]
- Omitting parentheses after switch
- Confusing case value types
- Removing break causing fall-through
You want to write a program that prints a message based on a score:
- If score is exactly 100, print 'Perfect!'
- If score is between 90 and 99, print 'Great!'
- If score is between 60 and 89, print 'Good'
- Otherwise, print 'Try again'
Which approach is best?
Solution
Step 1: Analyze the conditions
The conditions involve ranges, not fixed values, soswitchis not suitable.Step 2: Choose the best control structure
Multipleifandelse ifstatements can check ranges easily and clearly.Final Answer:
Use multipleifandelse ifstatements to check ranges. -> Option DQuick Check:
Ranges need if/else if, not switch [OK]
- Trying to use switch for range conditions
- Using switch with boolean expressions (not allowed)
- Combining all conditions in one if without else if
Ready to prove it?
Pass the test and this pattern moves unknown
