Go – Decision Making
Estimated reading: 3 minutes 46 views

🔀 Go Switch Statement – Simplify Multi-Condition Logic in Go (2025 Guide)

🧲 Introduction – What Is a Switch Statement in Go?

The switch statement in Go provides a clean, readable alternative to writing multiple if-else if chains. It’s ideal for comparing a single variable against multiple values and improves both performance and readability.

🎯 In this section, you’ll learn:

  • Go’s switch syntax and control flow
  • How Go’s switch differs from C-like languages
  • Switch with expressions, multiple cases, and fallthrough
  • Real-world use cases and output examples

✅ Basic Switch Syntax in Go

switch value {
case condition1:
    // block 1
case condition2:
    // block 2
default:
    // block if no case matches
}

📌 Example – Simple Switch

day := "Tuesday"

switch day {
case "Monday":
    fmt.Println("Start of the week")
case "Tuesday":
    fmt.Println("Second day of the week")
default:
    fmt.Println("Another day")
}

📤 Output:

Second day of the week

🔢 Switch with Integer Cases

score := 90

switch score {
case 100:
    fmt.Println("Perfect!")
case 90:
    fmt.Println("Excellent!")
default:
    fmt.Println("Keep trying.")
}

📤 Output:

Excellent!

🧮 Switch with Expressions

You can omit the variable and directly use conditions:

marks := 75

switch {
case marks >= 90:
    fmt.Println("A Grade")
case marks >= 75:
    fmt.Println("B Grade")
case marks >= 60:
    fmt.Println("C Grade")
default:
    fmt.Println("Fail")
}

📤 Output:

B Grade

📚 Multiple Values in One Case

lang := "Go"

switch lang {
case "Python", "Go", "Rust":
    fmt.Println("Modern Language")
default:
    fmt.Println("Classic Language")
}

📤 Output:

Modern Language

🔁 Fallthrough in Go

Unlike C, Go doesn’t fall through by default. You must use the fallthrough keyword manually.

num := 1

switch num {
case 1:
    fmt.Println("One")
    fallthrough
case 2:
    fmt.Println("Two")
}

📤 Output:

One  
Two

⚠️ Use fallthrough carefully — it executes the next case even if its condition doesn’t match.


⛔ No Automatic Fallthrough – Why It’s Better

Go avoids accidental logic bugs by not falling through like in C/C++. This makes your code more predictable and safe.


🧠 Real-World Example – HTTP Status Code Handler

code := 404

switch code {
case 200:
    fmt.Println("OK")
case 400:
    fmt.Println("Bad Request")
case 404:
    fmt.Println("Not Found")
default:
    fmt.Println("Unhandled status code")
}

📤 Output:

Not Found

📌 Summary – Recap & Next Steps

Go’s switch statement is a powerful alternative to complex if-else ladders. It is cleaner, faster, and includes flexible options like expressions, multi-case values, and fallthrough.

🔍 Key Takeaways:

  • Use switch to evaluate one value against many cases
  • Omit the value for condition-based expressions
  • Use fallthrough to continue to next case manually
  • Combine multiple values in a single case
  • Always include a default for safe fallback behavior

⚙️ Next: Learn Go For Loops to perform repeated actions with full control.


❓ FAQs – Go Switch Statement

❓ Does Go’s switch fall through by default?
✅ No. Go’s switch stops after the first matching case unless fallthrough is used.

❓ Can I use conditions instead of values in a switch?
✅ Yes. You can use expression-only switches without specifying a value.

❓ Can I group multiple values under one case in Go?
✅ Yes. Use comma-separated values like case "Go", "Rust".

❓ Is switch faster than if-else in Go?
✅ In many cases, yes — especially when evaluating many discrete values.

❓ Can I use switch without a condition in Go?
✅ Yes. switch { ... } acts like if-else if-else.


Share Now :

Leave a Reply

Your email address will not be published. Required fields are marked *

Share

Go Switch Statement

Or Copy Link

CONTENTS
Scroll to Top