Go switch Statement
The switch Statement
Use the switch
statement to select one of many code blocks to be executed.
The switch
statement in Go is similar to the ones in C, C++, Java, JavaScript, and PHP. The difference is that it only runs the matched case so it does not need a break
statement.
Single-Case switch Syntax
Syntax
switch expression {
case x:
// code block
case y:
// code block
case z:
...
default:
// code block
}
This is how it works:
- The expression is evaluated once
- The value of the
switch
expression is compared with the values of eachcase
- If there is a match, the associated block of code is executed
- The
default
keyword is optional. It specifies some code to run if there is nocase
match
Single-Case switch Example
The example below uses a weekday number to calculate the weekday name:
Example
package main
import ("fmt")
func main() {
day := 4
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
case 6:
fmt.Println("Saturday")
case 7:
fmt.Println("Sunday")
}
}
Result:
Thursday
The default Keyword
The default
keyword specifies some code to run if there is no case match:
Example
package main
import ("fmt")
func main() {
day := 8
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
case 6:
fmt.Println("Saturday")
case 7:
fmt.Println("Sunday")
default:
fmt.Println("Not a weekday")
}
}
Result:
Not a weekday
All the case
values should have the same type as the switch
expression. Otherwise, the compiler will raise an error:
Example
package main
import ("fmt")
func main() {
a := 3
switch a {
case 1:
fmt.Println("a is one")
case "b":
fmt.Println("a is b")
}
}
Result:
./prog.go:11:2: cannot use "b" (type untyped string) as type int
Go Exercises
Copyright 1999-2023 by Refsnes Data. All Rights Reserved.