4.2ゴースイッチ

4.2ゴースイッチ

異なるアクションを実行するためにさまざまな条件に基づいてswitch文、それぞれ独自のブランチ場合、個別に試合終了までテストしたトップダウン、デフォルトで自动终止不需要break

2.スイッチの基本的な文法

  1. 発現を切り替え後に続く(変数、定数、関数などの戻り値)
  2. 後者の場合は、一貫性の発現および発現データ型スイッチである必要があります
  3. あなたはケースの後に複数の式を持つことができます
  4. 定数式の背後にある場合は、繰り返されてはなりません
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("输入错误你就必须得上班!!")
    }
}
  1. 代わりに使用して、スイッチの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("恭喜你,考试不及格")
    }
}
  1. 浸透のスイッチは、fallthroughcase文がフォールスルーを追加した後、ブロックは、次の場合に進みます
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型の分析、であれば、。

おすすめ

転載: www.cnblogs.com/open-yang/p/11256802.html