Bird
Raised Fist0
Goprogramming~5 mins

Switch statement in Go - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Switch statement
O(n)
Understanding Time Complexity

We want to understand how the time it takes to run a switch statement changes as the input changes.

Specifically, we ask: does the number of cases affect how long the switch takes?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


func checkNumber(n int) string {
    switch n {
    case 1:
        return "One"
    case 2:
        return "Two"
    case 3:
        return "Three"
    default:
        return "Other"
    }
}
    

This code checks a number and returns a word based on which case matches.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The switch compares the input value to each case until it finds a match.
  • How many times: At most, it checks each case once in order until a match is found.
How Execution Grows With Input

As the number of cases grows, the switch may need to check more cases before finding a match.

Number of Cases (n)Approx. Checks
3Up to 3 checks
10Up to 10 checks
100Up to 100 checks

Pattern observation: The checks grow roughly in direct proportion to the number of cases.

Final Time Complexity

Time Complexity: O(n)

This means the time to find the matching case grows linearly with the number of cases.

Common Mistake

[X] Wrong: "A switch statement always runs in constant time no matter how many cases it has."

[OK] Correct: The switch checks cases one by one until it finds a match, so more cases can mean more checks and longer time.

Interview Connect

Understanding how switch statements scale helps you explain code efficiency clearly and shows you think about how programs behave as they grow.

Self-Check

"What if the switch used a map lookup instead of cases? How would the time complexity change?"

Practice

(1/5)
1. What does a switch statement do in Go?
easy
A. It selects one case to run based on a value.
B. It repeats code multiple times like a loop.
C. It defines a new function.
D. It declares a variable.

Solution

  1. Step 1: Understand the purpose of switch

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

    Loops repeat code, functions define behavior, variables store data. Switch picks cases.
  3. Final Answer:

    It selects one case to run based on a value. -> Option A
  4. Quick Check:

    Switch = Select case [OK]
Hint: Switch picks one matching case to run [OK]
Common Mistakes:
  • Confusing switch with loops
  • Thinking switch defines functions
  • Believing switch declares variables
2. Which of the following is the correct syntax for a basic switch statement in Go?
easy
A. switch (x) { case 1: fmt.Println("One") default: fmt.Println("Other") }
B. switch x { case 1: fmt.Println("One") default: fmt.Println("Other") }
C. switch x: case 1: fmt.Println("One") default: fmt.Println("Other")
D. switch x { case 1 => fmt.Println("One") default => fmt.Println("Other") }

Solution

  1. Step 1: Recall Go switch syntax

    Go uses switch variable { case value: ... default: ... } without parentheses.
  2. Step 2: Check each option

    switch x { case 1: fmt.Println("One") default: fmt.Println("Other") } matches correct syntax. switch (x) { case 1: fmt.Println("One") default: fmt.Println("Other") } wrongly uses parentheses. switch x: case 1: fmt.Println("One") default: fmt.Println("Other") uses colon after switch. switch x { case 1 => fmt.Println("One") default => fmt.Println("Other") } uses => which is invalid.
  3. Final Answer:

    switch x { case 1: fmt.Println("One") default: fmt.Println("Other") } -> Option B
  4. Quick Check:

    Correct syntax = switch x { case 1: fmt.Println("One") default: fmt.Println("Other") } [OK]
Hint: No parentheses around switch variable in Go [OK]
Common Mistakes:
  • Adding parentheses around switch variable
  • Using colon after switch keyword
  • Using => instead of colon in cases
3. What will be the output of this Go code?
package main
import "fmt"
func main() {
  x := 2
  switch x {
  case 1:
    fmt.Println("One")
  case 2:
    fmt.Println("Two")
  case 3:
    fmt.Println("Three")
  default:
    fmt.Println("Other")
  }
}
medium
A. Two
B. Three
C. One
D. Other

Solution

  1. Step 1: Identify the switch variable and value

    The variable x is 2.
  2. Step 2: Match the case with value 2

    The case 2 matches and prints "Two".
  3. Final Answer:

    Two -> Option A
  4. Quick Check:

    Switch x=2 prints "Two" [OK]
Hint: Match switch value to case label [OK]
Common Mistakes:
  • Choosing default instead of matching case
  • Confusing case numbers
  • Ignoring switch variable value
4. Find the error in this Go switch code:
package main
import "fmt"
func main() {
  x := 3
  switch x {
  case 1
    fmt.Println("One")
  case 2:
    fmt.Println("Two")
  default:
    fmt.Println("Other")
  }
}
medium
A. fmt.Println syntax error
B. Missing default case
C. Switch variable must be string
D. Missing colon after case 1

Solution

  1. Step 1: Check case syntax

    Each case must end with a colon (:). Here, case 1 misses the colon.
  2. Step 2: Verify other parts

    Default case exists, switch variable can be int, fmt.Println is correct.
  3. Final Answer:

    Missing colon after case 1 -> Option D
  4. Quick Check:

    Case syntax requires colon [OK]
Hint: Each case must end with a colon (:) [OK]
Common Mistakes:
  • Omitting colon after case
  • Thinking default is mandatory
  • Assuming switch variable must be string
5. How can you write a Go switch statement that prints "Weekend" for Saturday and Sunday, and "Weekday" for other days (1=Monday, 7=Sunday)?
hard
A. switch day { case day == 6 || day == 7: fmt.Println("Weekend") default: fmt.Println("Weekday") }
B. switch day { case 6: fmt.Println("Weekend") case 7: fmt.Println("Weekday") default: fmt.Println("Weekday") }
C. switch day { case 6, 7: fmt.Println("Weekend") default: fmt.Println("Weekday") }
D. switch day { case 6: fmt.Println("Weekend") case 7: fmt.Println("Sunday") default: fmt.Println("Weekday") }

Solution

  1. Step 1: Group weekend days in one case

    Using case 6, 7: groups Saturday and Sunday together.
  2. Step 2: Use default for other days

    Default prints "Weekday" for days 1 to 5.
  3. Final Answer:

    switch day { case 6, 7: fmt.Println("Weekend") default: fmt.Println("Weekday") } -> Option C
  4. Quick Check:

    Multiple values in one case = switch day { case 6, 7: fmt.Println("Weekend") default: fmt.Println("Weekday") } [OK]
Hint: Use commas to group cases in Go switch [OK]
Common Mistakes:
  • Separating weekend days into different cases with wrong output
  • Using logical OR inside switch expression incorrectly
  • Missing default case for weekdays
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