4.2ゴースイッチ
異なるアクションを実行するためにさまざまな条件に基づいてswitch文、それぞれ独自のブランチ場合、個別に試合終了までテストしたトップダウン、デフォルトで自动终止
、不需要break
。
2.スイッチの基本的な文法
- 発現を切り替え後に続く(変数、定数、関数などの戻り値)
- 後者の場合は、一貫性の発現および発現データ型スイッチである必要があります
- あなたはケースの後に複数の式を持つことができます
- 定数式の背後にある場合は、繰り返されてはなりません
package main import "fmt" func main() { var week int fmt.Println("请输入星期几:") fmt.Scanln(&week) switch week { case 1: fmt.Println("星期一,上班!!") case 2, 3, 4, 5: fmt.Println("星期二到星期五,你还得上班!!") case 6: fmt.Println("周六你就想休息?加班!!") case 7: fmt.Println("老子迟早要辞职,终于能休息了!!") default: fmt.Println("输入错误你就必须得上班!!") } }
- 代わりに使用して、スイッチのif-else
package main import "fmt" func main() { var score int fmt.Println("请录入你的成绩:>") fmt.Scanln(&score) switch { case score > 90: fmt.Println("成绩优秀") case score >= 70: fmt.Println("及格中等") case score >= 60: fmt.Println("勉强及格了") default: fmt.Println("恭喜你,考试不及格") } }
- 浸透のスイッチは、
fallthrough
case文がフォールスルーを追加した後、ブロックは、次の場合に進みます
package main import "fmt" func main() { var score int fmt.Println("请录入你的成绩:>") fmt.Scanln(&score) switch { case score > 90: fmt.Println("成绩优秀") fallthrough case score >= 70: fmt.Println("及格中等") case score >= 60: fmt.Println("勉强及格了") default: fmt.Println("恭喜你,考试不及格") } }
7.switchはまた、実際に格納されたインタフェースを決定する変数の型変数を使用することができます。
package main import "fmt" func main() { var x interface{} //x是空接口类型,可以接收任意类型 var y = 19.9 x = y switch i := x.(type) { case nil: fmt.Printf("x的类型是%T\n", i) case float64: fmt.Printf("x的类型是%T\n", i) default: fmt.Println("未知类型") } }
2.1。場合は和を切り替えます
いくつかの具体的な値は、マッチ整数型、浮動小数点、文字、文字列、などを分析し、それがスイッチをお勧めします。
制御の広い範囲であればbool型の分析、であれば、。