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 的用法就介紹到這裏。

相關文章
相關標籤/搜索