1. 基本语法
package main
import "fmt"
func main() {
var extname = ".css"
switch extname {
case ".html":
fmt.Println("text/html")
case ".css":
fmt.Println("text/css") // text/css
case ".js":
fmt.Println("text/javaScript")
default:
fmt.Println("找不到此后缀")
}
}
2. 条件前可以写表达式
package main
import "fmt"
func main() {
switch extname := ".html"; extname {
case ".html":
fmt.Println("text/html") // text/html
case ".css":
fmt.Println("text/css")
case ".js":
fmt.Println("text/javascript")
default:
fmt.Println("找不到此后缀")
}
// 注意 extname 只能在switch语句中访问
fmt.Println(extname)
//undefined: extname
}
3. 一个分支可以有多个值
package main
import "fmt"
func main() {
var score = "D"
switch score {
case "A", "B", "C":
fmt.Println("及格")
case "D":
fmt.Println("不及格") // 不及格
}
}
4. 分支可以写表达式
package main
import "fmt"
func main() {
var age = 18
switch {
case age < 24:
fmt.Println("好好学习") // 好好学习
case age >= 24 && age <= 60:
fmt.Println("好好赚钱")
case age > 60:
fmt.Println("注意身体")
default:
fmt.Println("输入错误")
}
}
5. 条件穿透语句
在C语言中 switch 语句中必须添加 break,否则会进行条件穿透,而在Go 语言中的 switch 语句中不用添加 break,也不会产生条件穿透,但是如果需要条件穿透时可以加上 fallthrough。
package main
import "fmt"
func main() {
var age = 30
switch {
case age < 24:
fmt.Println("好好学习")
case age >= 24 && age <= 60:
fmt.Println("好好赚钱") // 好好赚钱
fallthrough
case age > 60:
fmt.Println("注意身体") // 注意身体
default:
fmt.Println("输入错误")
}
}