Golang中不同的switch用法|Go主题月

目录markdown

前言spa

正文code

结束orm

前言

Golang语言在流程控制方面也有其余语言所具有的 if、switch、for 三剑客。其中,if、for 用法基本上还算一致,除了须要特别注意一下语法问题。可是 switch 就不得不单独拿出来讲道说道了,由于它的用法差别确实有些大。it

好了,今天的主要内容就是介绍Golang中的 switch 。io

正文

说到Golang中的流程控制语句 switch,确实有必要讲一讲。table

首先,咱们来讲一说 switch 和 if 的区别是。咱们都知道 if 以后只能是bool类型, 而 switch 能够是其余类型。 可是 case 后面的数据必须和 switch 变量类型一致。 class

另外,case 是没有前后顺序的,只要符合条件就会进入。import

最后,说一说 switch 和其余语言最为不一样的一点:没有 break 语句,每一个 case 默认都带着break 语句。变量

这么说,可能你们不是可以理解的很清楚。

接下来,咱们经过一段代码同时结合代码的执行结果来分析一下 switch 的这个特性。

package main

import "fmt"

func main() {
    num := 2
    switch num{
    case 1:
        fmt.Println("num的数值是1")
    case 2:
        fmt.Println("num的数值是2")
    case 3:
        fmt.Println("num的数值是3")
    case 4,5,6:
        fmt.Println("num的数值多是4,5,6")
    default:
	fmt.Println("执行default语句")
    }
    fmt.Println("程序结束了")
}
复制代码

代码的执行结果:

num的数值是2 
程序结束了

根据结果咱们能够知道,尽管 case 2 语句后面没有 break 语句,switch 也跳出了当前的控制流程。

fallthrough

接下来,再介绍一个在Golang中switch的特殊用法——fallthrough。

这个 fallthrough 语句的做用是强制执行case后面的没有执行的case代码,具体怎么使用,咱们经过一段代码来了解一下。

咱们修改上面的代码,在 case 2 语句后边加上 fallthrough 语句。

代码实例:

package main

import "fmt"

func main() {
    num := 2
    switch num{
    case 1:
        fmt.Println("num的数值是1")
    case 2:
        fmt.Println("num的数值是2")
	fallthrough
    case 3:
        fmt.Println("num的数值是3")
    case 4,5,6:
        fmt.Println("num的数值多是4,5,6")
    default:
	fmt.Println("执行default语句")
    }
    fmt.Println("程序结束了")
}
复制代码

代码执行结果:

num的数值是2 
num的数值是3 
程序结束了

经过代码,咱们能够知道 fallthrough 只做用于当前 case,只多向下执行一个 case,而不是执行整个 switch 语句。

结束

好了,今天Golang语言的 switch 的用法就介绍到这里。

相关文章
相关标签/搜索