📖 Scenario: You are building a simple program to decide what message to show based on a user's role in a system.
🎯 Goal: Create a C program that uses switch statements to print different messages for different user roles.
📋 What You'll Learn
Create an integer variable called role with a specific value
Create a switch statement using the variable role
Handle cases for roles 1, 2, and 3 with different messages
Include a default case for unknown roles
Print the message corresponding to the role
💡 Why This Matters
🌍 Real World
Switch statements are used in programs to make decisions based on different conditions, like user roles, menu choices, or error codes.
💼 Career
Understanding switch statements helps in writing clear and efficient code for decision-making in many software development jobs.
Progress0 / 4 steps
1
Create the role variable
Create an integer variable called role and set it to 2.
C
Hint
Use int role = 2; inside the main function.
2
Add the switch statement
Add a switch statement using the variable role inside the main function.
C
Hint
Write switch(role) { } inside main.
3
Add cases for roles 1, 2, and 3
Inside the switch(role), add cases for 1, 2, and 3. For each case, add a printf statement with these exact messages: "Admin access granted\n" for case 1, "User access granted\n" for case 2, "Guest access granted\n" for case 3. Don't forget to add break; after each printf.
C
Hint
Use case 1:, case 2:, case 3: with printf and break;.
4
Add a default case and print the message
Add a default case inside the switch(role) that prints "Unknown role\n". Then, add a printf statement to print the message for the current role when the program runs.
C
Hint
Use default: with printf("Unknown role\n"); and break;.
Practice
(1/5)
1. What is the main purpose of using a switch statement in C programming?
easy
A. To declare variables
B. To choose between multiple actions based on the value of a variable
C. To define a function
D. To repeat a block of code multiple times
Solution
Step 1: Understand the role of switch
The switch statement is used to select one of many code blocks to execute based on a variable's value.
Step 2: Compare with other options
Declaring variables, repeating a block of code multiple times, and defining a function are not the purpose of switch.
Final Answer:
To choose between multiple actions based on the value of a variable -> Option B
Quick Check:
switch selects code by value [OK]
Hint: Switch picks code based on variable value, like a menu choice [OK]
Common Mistakes:
Confusing switch with loops
Thinking switch declares variables
Using switch to define functions
2. Which of the following is the correct syntax to start a switch statement in C?
easy
A. switch(variable) {
B. switch variable {
C. switch variable() {
D. switch { variable }
Solution
Step 1: Recall correct switch syntax
The correct syntax requires the keyword switch followed by parentheses enclosing the variable, then an opening brace.
Step 2: Check each option
switch(variable) { matches the correct syntax: switch(variable) {. Others miss parentheses or use wrong braces.
Final Answer:
switch(variable) { -> Option A
Quick Check:
Syntax needs parentheses around variable [OK]
Hint: Remember: switch(variable) with parentheses and braces [OK]
Common Mistakes:
Omitting parentheses around variable
Using wrong braces or brackets
Adding parentheses after variable name
3. What will be the output of the following C code?
int x = 2;
switch(x) {
case 1:
printf("One\n");
break;
case 2:
printf("Two\n");
break;
default:
printf("Other\n");
}
medium
A. One
B. Other
C. Two
D. No output
Solution
Step 1: Identify the value of variable x
The variable x is set to 2.
Step 2: Match x with case labels
The switch checks cases: 1 and 2. Since x is 2, it matches case 2 and prints "Two".
Final Answer:
Two -> Option C
Quick Check:
Value 2 matches case 2 [OK]
Hint: Match variable value to case label to find output [OK]
Common Mistakes:
Ignoring break and falling through
Choosing default when case matches
Confusing case numbers
4. Identify the error in this switch statement:
int n = 3;
switch(n) {
case 1:
printf("One\n");
case 2:
printf("Two\n");
break;
default:
printf("Default\n");
}
medium
A. Missing break after case 1 causes fall-through
B. Variable n is not declared
C. Default case must be first
D. Switch cannot use integers
Solution
Step 1: Check for break statements
Case 1 lacks a break, so after printing "One", execution continues to case 2.
Step 2: Understand consequences of missing break
This fall-through causes both "One" and "Two" to print when n is 1, which is usually unintended.
Final Answer:
Missing break after case 1 causes fall-through -> Option A
Quick Check:
Always add break to prevent fall-through [OK]
Hint: Add break after each case to stop fall-through [OK]
Common Mistakes:
Forgetting break after cases
Thinking default must be first
Believing switch can't use integers
5. You want to write a switch statement that prints "Weekday" for cases 1 to 5, "Weekend" for 6 and 7, and "Invalid" for any other number. Which code snippet correctly implements this?
hard
A. switch(day) {
if(day >= 1 && day <= 5) {
printf("Weekday\n");
} else if(day == 6 || day == 7) {
printf("Weekend\n");
} else {
printf("Invalid\n");
}
}
B. switch(day) {
case 1:
printf("Weekday\n");
case 2:
printf("Weekday\n");
case 3:
printf("Weekday\n");
case 4:
printf("Weekday\n");
case 5:
printf("Weekday\n");
case 6:
printf("Weekend\n");
case 7:
printf("Weekend\n");
default:
printf("Invalid\n");
}
C. switch(day) {
case 1 ... 5:
printf("Weekday\n");
break;
case 6 ... 7:
printf("Weekend\n");
break;
default:
printf("Invalid\n");
}
D. switch(day) {
case 1: case 2: case 3: case 4: case 5:
printf("Weekday\n");
break;
case 6: case 7:
printf("Weekend\n");
break;
default:
printf("Invalid\n");
}
Solution
Step 1: Understand valid switch syntax for multiple cases
Cases can be grouped by listing them one after another without breaks to share code.
Step 2: Evaluate each option
switch(day) {
case 1: case 2: case 3: case 4: case 5:
printf("Weekday\n");
break;
case 6: case 7:
printf("Weekend\n");
break;
default:
printf("Invalid\n");
} correctly groups cases 1 to 5 and 6 to 7, with breaks and a default. switch(day) {
case 1:
printf("Weekday\n");
case 2:
printf("Weekday\n");
case 3:
printf("Weekday\n");
case 4:
printf("Weekday\n");
case 5:
printf("Weekday\n");
case 6:
printf("Weekend\n");
case 7:
printf("Weekend\n");
default:
printf("Invalid\n");
} lacks breaks causing fall-through. switch(day) {
case 1 ... 5:
printf("Weekday\n");
break;
case 6 ... 7:
printf("Weekend\n");
break;
default:
printf("Invalid\n");
} uses invalid syntax (case 1 ... 5). switch(day) {
if(day >= 1 && day <= 5) {
printf("Weekday\n");
} else if(day == 6 || day == 7) {
printf("Weekend\n");
} else {
printf("Invalid\n");
}
} uses if inside switch without case labels, making the body unreachable and invalid for switch logic.
Final Answer:
Groups cases by listing consecutive cases for shared execution with breaks -> Option D
Quick Check:
Group cases by listing them, add breaks [OK]
Hint: Group cases by listing them; use breaks to separate [OK]
Common Mistakes:
Using invalid range syntax in case
Missing breaks causing fall-through
Trying to use if inside switch
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.