📖 Scenario: Imagine you are creating a simple program that tells the day of the week based on a number. You want to see how using switch and if statements can both solve this problem.
🎯 Goal: Build a program that takes a number from 1 to 7 and prints the corresponding day of the week using both switch and if statements.
📋 What You'll Learn
Create an integer variable called day with a value of 3
Use a switch statement with day to print the correct day name
Use an if statement with day to print the correct day name
Print the results for both switch and if methods
💡 Why This Matters
🌍 Real World
Choosing actions based on a value is common in programs, like menus or commands.
💼 Career
Understanding switch and if statements is essential for writing clear and efficient code in many programming jobs.
Progress0 / 4 steps
1
Create the day variable
Create an integer variable called day and set it to 3.
C
Hint
Use int day = 3; to create the variable.
2
Add a switch statement for day
Add a switch statement using the variable day to print the day name for 1 to 7. For 3, print "Wednesday". Use printf inside each case.
C
Hint
Use switch(day) { case 1: ... } and printf for each day.
3
Add an if statement for day
Add an if statement using the variable day to print the day name for 1 to 7. For 3, print "Wednesday". Use printf inside each condition.
C
Hint
Use if(day == 1) { ... } else if(day == 2) { ... } and so on.
4
Print the final output
Run the program and observe the output. It should print Wednesday twice, once from the switch and once from the if statement. Write a printf statement before each to label them as Switch: and If:.
C
Hint
Use printf("Switch: "); before the switch and printf("If: "); before the if.
Practice
(1/5)
1. Which statement best describes when to use switch instead of if in C?
easy
A. switch is best for checking one variable against many fixed values.
B. switch can handle complex range conditions better than if.
C. if is only used for simple true/false checks.
D. if cannot be used with multiple conditions.
Solution
Step 1: Understand switch usage
switch works well when you compare one variable to many fixed values like 1, 2, 3.
Step 2: Compare with if
if is more flexible and can handle ranges or complex conditions, but switch is clearer for fixed values.
Final Answer:
switch is best for checking one variable against many fixed values. -> Option A
Quick Check:
Use switch for fixed values [OK]
Hint: Use switch for many fixed values, if for ranges [OK]
Common Mistakes:
Thinking switch handles ranges
Believing if can't handle multiple conditions
Confusing switch with if for complex logic
2. Which of the following is the correct syntax for a switch statement in C?
easy
A. switch (variable) { case 1: doSomething(); break; default: doDefault(); }
B. switch variable { case 1: doSomething(); break; default: doDefault(); }
C. switch (variable) do { case 1: doSomething(); break; }
D. switch (variable) { if case 1: doSomething(); }
Solution
Step 1: Check switch syntax
The correct syntax uses parentheses around the variable and curly braces for cases.
Step 2: Identify correct case and break usage
Each case ends with a colon and usually a break to prevent fall-through.
Final Answer:
switch (variable) { case 1: doSomething(); break; default: doDefault(); } -> Option A
Hint: Remember switch(variable) with braces and case labels [OK]
Common Mistakes:
Omitting parentheses around variable
Using if inside switch incorrectly
Missing break causing fall-through
3. What will be the output of this C code?
int x = 2;
switch (x) {
case 1: printf("One\n"); break;
case 2: printf("Two\n");
case 3: printf("Three\n"); break;
default: printf("Default\n");
}
medium
A. Two
B. Two
Three
C. Three
D. Default
Solution
Step 1: Identify matching case
The variable x is 2, so case 2 matches and prints "Two".
Step 2: Check for break after case 2
There is no break after case 2, so execution falls through to case 3 and prints "Three".
Final Answer:
Two
Three -> Option B
Quick Check:
Missing break causes fall-through [OK]
Hint: No break after case causes next case to run too [OK]
Common Mistakes:
Assuming break after every case automatically
Ignoring fall-through behavior
Thinking default runs if case matches
4. Find the error in this code snippet:
int num = 3;
switch (num) {
case 1:
printf("One\n");
case 2:
printf("Two\n");
break;
default:
printf("Default\n");
}
medium
A. Case labels must be strings, not numbers.
B. Switch variable must be a character, not int.
C. Missing break after case 1 causes fall-through.
D. Default case must be last, but it is not.
Solution
Step 1: Check breaks after cases
Case 1 lacks a break, so if num is 1, it will fall through to case 2 and print both lines.
Step 2: Validate switch rules
Switch can use int variables, default can be anywhere, and case labels are numbers here, which is correct.
Final Answer:
Missing break after case 1 causes fall-through. -> Option C
Quick Check:
Always add break to avoid fall-through [OK]
Hint: Add break after each case to prevent fall-through [OK]
Common Mistakes:
Thinking switch only works with chars
Believing default must be last
Confusing case label types
5. You want to print a message based on a score variable: - "Fail" if score < 50 - "Pass" if score is between 50 and 75 inclusive - "Excellent" if score > 75
Which approach is best in C?
hard
A. Use a switch with default only and if inside cases.
B. Use a switch statement with cases for each score range.
C. Use multiple switch statements for each condition.
D. Use if-else statements to check score ranges.
Solution
Step 1: Analyze score conditions
The conditions involve ranges (less than 50, between 50 and 75, greater than 75).
Step 2: Choose suitable control structure
Switch works only with fixed values, not ranges, so if-else is better for ranges.
Final Answer:
Use if-else statements to check score ranges. -> Option D
Quick Check:
Ranges need if-else, not switch [OK]
Hint: Use if for ranges, switch for fixed values only [OK]
Common Mistakes:
Trying to use switch for ranges
Using multiple switches unnecessarily
Confusing default case with range checks
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.