Bird
Raised Fist0
Goprogramming~20 mins

Switch statement in Go - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
๐ŸŽ–๏ธ
Switch Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
Output of a simple switch statement
What is the output of this Go program?
Go
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")
  }
}
ATwo
BThree
COne
DOther
Attempts:
2 left
๐Ÿ’ก Hint
Look at the value of x and which case matches it.
โ“ Predict Output
intermediate
2:00remaining
Switch with multiple cases and fallthrough
What will this Go program print?
Go
package main
import "fmt"
func main() {
  n := 1
  switch n {
  case 1:
    fmt.Println("One")
    fallthrough
  case 2:
    fmt.Println("Two")
  case 3:
    fmt.Println("Three")
  default:
    fmt.Println("Default")
  }
}
A
One
Two
Three
BTwo
C
One
Two
DOne
Attempts:
2 left
๐Ÿ’ก Hint
Remember that fallthrough makes the next case run too.
โ“ Predict Output
advanced
2:00remaining
Switch with expression and no matching case
What is the output of this Go program?
Go
package main
import "fmt"
func main() {
  x := 10
  switch {
  case x < 5:
    fmt.Println("Less than 5")
  case x > 20:
    fmt.Println("Greater than 20")
  default:
    fmt.Println("Between 5 and 20")
  }
}
ABetween 5 and 20
BGreater than 20
CLess than 5
DNo output
Attempts:
2 left
๐Ÿ’ก Hint
The switch has no expression, so it checks each case condition as a boolean.
โ“ Predict Output
advanced
2:00remaining
Switch with type assertion
What will this Go program print?
Go
package main
import "fmt"
func main() {
  var i interface{} = 3.14
  switch v := i.(type) {
  case int:
    fmt.Println("int", v)
  case float64:
    fmt.Println("float64", v)
  case string:
    fmt.Println("string", v)
  default:
    fmt.Println("unknown")
  }
}
Aint 3
Bfloat64 3.14
Cunknown
Dstring 3.14
Attempts:
2 left
๐Ÿ’ก Hint
The variable i holds a float64 value, so the type switch matches float64.
๐Ÿง  Conceptual
expert
3:00remaining
Behavior of fallthrough in switch with multiple cases
Consider this Go code snippet: var x = 2 switch x { case 1, 2: fmt.Println("One or Two") fallthrough case 3: fmt.Println("Three") case 4: fmt.Println("Four") } What will be printed when this code runs?
A
One or Two
Three
Four
BOne or Two
CThree
D
One or Two
Three
Attempts:
2 left
๐Ÿ’ก Hint
fallthrough only moves to the next case, even if it has multiple values.

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