Bird
Raised Fist0
Cprogramming~15 mins

Switch statement - Mini Project: Build & Apply

Choose your learning style10 modes available
Using a Switch Statement in C
📖 Scenario: You are creating a simple program that tells the name of a day based on a number input from 1 to 7.
🎯 Goal: Build a C program that uses a switch statement to print the correct day name for a given number.
📋 What You'll Learn
Create an integer variable called dayNumber with the value 3
Create an integer variable called invalidDay with the value 0
Use a switch statement on dayNumber with cases for numbers 1 to 7
Print the correct day name for each case
Use default case to print "Invalid day" if the number is not 1 to 7
Print the result using printf
💡 Why This Matters
🌍 Real World
Switch statements are used in many programs to choose actions based on a value, like menu selections or commands.
💼 Career
Understanding switch statements helps in writing clear and efficient code for decision-making in software development.
Progress0 / 4 steps
1
Create the day number variable
Create an integer variable called dayNumber and set it to 3.
C
Hint

Use int dayNumber = 3; to create the variable.

2
Create the invalid day variable
Create an integer variable called invalidDay and set it to 0.
C
Hint

Use int invalidDay = 0; to create the variable.

3
Write the switch statement for day names
Write a switch statement using dayNumber with cases 1 to 7. For each case, use printf to print the day name: 1 for "Monday", 2 for "Tuesday", 3 for "Wednesday", 4 for "Thursday", 5 for "Friday", 6 for "Saturday", 7 for "Sunday". Add a default case that prints "Invalid day".
C
Hint

Use switch(dayNumber) { ... } with case labels and break; after each printf.

4
Print the day name result
Run the program to print the day name for dayNumber. The output should be Wednesday.
C
Hint

Compile and run the program. It should print Wednesday.

Practice

(1/5)
1. What is the main purpose of a switch statement in C?
easy
A. To define a function
B. To repeat a block of code multiple times
C. To select one action from multiple choices based on a variable's value
D. To declare variables

Solution

  1. Step 1: Understand the role of switch

    A switch statement chooses one path among many based on a variable's value.
  2. Step 2: Compare with other options

    Loops repeat code, functions define reusable blocks, and declarations create variables, which are different from switch's purpose.
  3. Final Answer:

    To select one action from multiple choices based on a variable's value -> Option C
  4. Quick Check:

    Switch = Choice selection [OK]
Hint: Switch picks one case based on value, like a menu choice [OK]
Common Mistakes:
  • Confusing switch with loops
  • Thinking switch defines functions
  • Believing switch declares variables
2. Which of the following is the correct syntax to start a switch statement in C?
easy
A. switch (variable) { case 1: ... }
B. switch variable { case 1: ... }
C. switch [variable] { case 1: ... }
D. switch variable: case 1: ...

Solution

  1. Step 1: Recall switch syntax

    The correct syntax uses parentheses around the variable: switch(variable) { ... }
  2. Step 2: Check options

    Only switch (variable) { case 1: ... } uses parentheses correctly; others miss parentheses or use wrong brackets.
  3. Final Answer:

    switch (variable) { case 1: ... } -> Option A
  4. Quick Check:

    Switch needs parentheses around variable [OK]
Hint: Remember: switch(variable) uses parentheses, not brackets or none [OK]
Common Mistakes:
  • Omitting parentheses around variable
  • Using square brackets instead of parentheses
  • Using colon instead of braces
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");
    break;
  default:
    printf("Other\n");
}
medium
A. One
B. Other
C. No output
D. Two

Solution

  1. Step 1: Identify the switch variable value

    The variable x is 2, so the switch checks case 2.
  2. Step 2: Match case and output

    Case 2 matches, so it prints "Two" and then breaks to stop further checks.
  3. Final Answer:

    Two -> Option D
  4. Quick Check:

    Case 2 matches x=2, prints "Two" [OK]
Hint: Match variable value to case, print and break [OK]
Common Mistakes:
  • Forgetting break causes fall-through
  • Choosing default when case matches
  • Confusing case numbers
4. Find 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
B. Missing default case
C. Wrong switch syntax
D. Variable n not declared

Solution

  1. Step 1: Check each case for break

    Case 1 lacks a break, so if matched, it would fall through to case 2.
  2. Step 2: Understand impact

    Missing break can cause unintended multiple prints; adding break after case 1 fixes this.
  3. Final Answer:

    Missing break after case 1 -> Option A
  4. Quick Check:

    Each case needs break to stop fall-through [OK]
Hint: Always add break after each case unless fall-through wanted [OK]
Common Mistakes:
  • Ignoring missing break causes fall-through
  • Thinking default is mandatory
  • Assuming variable declaration error
5. You want to write a switch statement that prints "Weekend" for cases 6 and 7, and "Weekday" for cases 1 to 5. Which code correctly does this?
hard
A. switch(day) { case 1: printf("Weekday\n"); break; case 2: printf("Weekday\n"); break; case 3: printf("Weekend\n"); break; case 4: printf("Weekday\n"); break; case 5: printf("Weekday\n"); break; case 6: printf("Weekend\n"); break; case 7: printf("Weekend\n"); break; }
B. 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"); }
C. switch(day) { case 1: case 2: case 3: case 4: case 5: printf("Weekend\n"); break; case 6: case 7: printf("Weekday\n"); break; }
D. switch(day) { case 1: case 2: case 3: case 4: case 5: printf("Weekday\n"); case 6: case 7: printf("Weekend\n"); break; }

Solution

  1. Step 1: Group cases for same output

    Cases 1 to 5 print "Weekday", so group them before one printf and break.
  2. Step 2: Group weekend cases

    Cases 6 and 7 print "Weekend" similarly grouped with break.
  3. Step 3: Check default case

    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"); } includes default for invalid days, which is good practice.
  4. Final Answer:

    Groups weekday cases 1-5 and weekend cases 6-7 with breaks and default -> Option B
  5. Quick Check:

    Group cases with same output, add break after each group [OK]
Hint: Group cases with same output, add break after group [OK]
Common Mistakes:
  • Printing wrong labels for grouped cases
  • Missing breaks causing fall-through
  • Not handling default case
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard