老男孩IT教育,只培养技术精英

全国免费咨询电话:400-609-2893
Go编程学习之Go 语言 switch 条件语句

    /    2018-11-06

switch语句用于基于不同条件执行不同动作。

switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,所有 case 分支的参数必须是相同的类型,语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加 break 默认自动终止。

switch语句

第一种,直接判断

package main

import "fmt"

func main() {
    var i = 0
    switch i {
    case 0:
    case 1:
        fmt.Println(1)
    case 2:
        fmt.Println(2)
    default:
        fmt.Println("default")
    }
}

第二种,带初始化语句

package main

import "fmt"

func main() {
    names := []string{"Linux", "Golang", "Java", "Python"}
    switch name := names[0]; name {
    case "Golang":
        fmt.Println("Golang")
    case "Java":
        fmt.Println("Java")
    case "Python":
        fmt.Println("Python")
    default:
        fmt.Println("oldboy")
    }
}

第三种,一个 case 多个可能符合条件的值

package main

import "fmt"

func main() {
    var i = 1
    switch i {
    case 0, 1:
        fmt.Println("0 or 1")
    case 2:
        fmt.Println("2")
    default:
        fmt.Println("default")
    }
}

第四种,省略条件表达式应用

package main

import "fmt"

func main() {
    var i = 10
    switch {
    case i >= 0 && i < 10:
        fmt.Println("i > 0 and i < 10")
    case i >= 10 && i < 20:
        fmt.Println("i > 10 and i < 20")
    default:
        fmt.Println("default")
    }
}

第五种,fallthrough应用

Go语言 switch 语句每个 case 最后默认带有break,匹配成功后不会自动向下执行其他 case,而是跳出整个switch,可以使用 fallthrough 语句强制执行后面的 case 代码。

package main

import "fmt"

func main() {
    var i = 0
    switch i {
    case 0:
        fmt.Println("fallthrough")
        fallthrough
    case 1:
        fmt.Println(1)
    case 2:
        fmt.Println(2)
    default:
        fmt.Println("default")
    }
}

(0)

分享至