Switch case statements in Golang
golang switch
case
statement
fallthrough
The switch statement is an easier way to have a sequence of if-else statements. In Golang you don't need to have break
at the end of
each case, it breaks implicitly. Also the golang switch statement work on values of any type.
Golang switch case statement
The switch statement is used to select and execute one out of many blocks of code.
package main
import "fmt"
func switchStringTest(str string) {
switch str {
case "test1":
fmt.Println("This is switch case 1.")
case "test2":
fmt.Println("This is switch case 2.")
case "test3":
fmt.Println("This is switch case 3.")
case "test4":
fmt.Println("This is switch case 4.")
default:
fmt.Println("This is the default case.")
}
}
func main() {
switchStringTest("test1")
switchStringTest("test2")
switchStringTest("test3")
switchStringTest("test4")
switchStringTest("test")
}
The default case is used if there is no case matched.
Output
This is switch case 1.
This is switch case 2.
This is switch case 3.
This is switch case 4.
This is the default case.
Golang switch multiple case statement
A switch with multiple case statements is useful when the same code need to be executed for multiple conditions.
package main
import "fmt"
func switchStringTest(str string) {
switch str {
case "test1", "test2":
fmt.Println("This is switch case 1 and 2.")
case "test3", "test4":
fmt.Println("This is switch case 3 and 4.")
default:
fmt.Println("This is the default case.")
}
}
func main() {
switchStringTest("test1")
switchStringTest("test2")
switchStringTest("test3")
switchStringTest("test4")
switchStringTest("test")
}
Output
This is switch case 1 and 2.
This is switch case 1 and 2.
This is switch case 3 and 4.
This is switch case 3 and 4.
This is the default case.
Note: As you can see first two calls of the switchStringTest
goes to the same case
(the first) and the last two call
goes to the same case
(the second).
Golang switch fallthrough case statement
The fallthrough
keyword is used to force the execution of the code to fall through the next case block.
package main
import "fmt"
func switchStringTest(str string) {
switch str {
case "test1":
fmt.Println("This is switch case 1.")
fallthrough
case "test2":
fmt.Println("This is switch case 2.")
fallthrough
case "test3":
fmt.Println("This is switch case 3.")
fallthrough
case "test4":
fmt.Println("This is switch case 4.")
fallthrough
default:
fmt.Println("This is the default case.")
}
}
func main() {
switchStringTest("test1")
switchStringTest("test2")
switchStringTest("test3")
switchStringTest("test4")
switchStringTest("test")
}
Output
This is switch case 1.
This is switch case 2.
This is switch case 3.
This is switch case 4.
This is the default case.
This is switch case 2.
This is switch case 3.
This is switch case 4.
This is the default case.
This is switch case 3.
This is switch case 4.
This is the default case.
This is switch case 4.
This is the default case.
This is the default case.
Note: As you can see for each calls of the switchStringTest
method, the cases from the entry case
to
default case
are executed.
Compile&Run
To compile the code navigate to the file location and run the following command.
$ go build example.go
Assuming that example.go
is the name of your file.
Then depending on if you are on Linux or Windows the binary file is created.
To run the application, execute the command.
Linux
$ ./example
Windows
c:\Users\adm\go\tutorials> example.exe
If you want to compile and run the application in one single step, run the following command:
go run example.go