Introduction
The switch
statement is a conditional statement that allows you to execute different code blocks based on the value of an expression. It is a powerful tool that can simplify your code and make it more readable.
This tutorial is from open-source community. Access the source code
The switch
statement is a conditional statement that allows you to execute different code blocks based on the value of an expression. It is a powerful tool that can simplify your code and make it more readable.
In this lab, you need to complete the switch
statement to print out the corresponding message based on the input value.
switch
statement must be used to solve the problem.default
case must be used to handle unexpected input values.$ go run switch.go
Write 2 as two
It's a weekday
It's after noon
I'm a bool
I'm an int
Don't know type string
There is the full code below:
// _Switch statements_ express conditionals across many
// branches.
package main
import (
"fmt"
"time"
)
func main() {
// Here's a basic `switch`.
i := 2
fmt.Print("Write ", i, " as ")
switch i {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
}
// You can use commas to separate multiple expressions
// in the same `case` statement. We use the optional
// `default` case in this example as well.
switch time.Now().Weekday() {
case time.Saturday, time.Sunday:
fmt.Println("It's the weekend")
default:
fmt.Println("It's a weekday")
}
// `switch` without an expression is an alternate way
// to express if/else logic. Here we also show how the
// `case` expressions can be non-constants.
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("It's before noon")
default:
fmt.Println("It's after noon")
}
// A type `switch` compares types instead of values. You
// can use this to discover the type of an interface
// value. In this example, the variable `t` will have the
// type corresponding to its clause.
whatAmI := func(i interface{}) {
switch t := i.(type) {
case bool:
fmt.Println("I'm a bool")
case int:
fmt.Println("I'm an int")
default:
fmt.Printf("Don't know type %T\n", t)
}
}
whatAmI(true)
whatAmI(1)
whatAmI("hey")
}
In this lab, you learned how to use the switch
statement to execute different code blocks based on the value of an expression. You also learned how to handle unexpected input values using the default
case.