iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0
自我挑戰組

golang初探系列 第 18

day18-控制流程(if 及 switch)

  • 分享至 

  • xImage
  •  

控制流程(也稱為流程控制)是電腦運算領域的用語,意指在程式執行時,個別的指令(或是陳述、子程式)執行或求值的順序。

if

通常用於判斷條件是否成立,成立執行時執行區塊中的代碼

package main

import "fmt"

func main() {
	a := 10
	//判斷是否 a 有大於 1,有則印出 a
	if a > 1 {
		fmt.Println(a)
	}
	//判斷是否 a 有大於 10,有則印出 "a 大於10" 否則印出 "a 小於 10"
	if a > 10 {
		fmt.Println("a 大於10")
	} else {
		fmt.Println("a 小於 10")
	}
	//判斷是否 a 有大於 1,有則印出 "a 大於 1" 
	//否則如果 判斷 a 有無大於 5 有則印出 "a 大於 5"
	//其餘則印出 a 大於 1 且也大於 5
	if a > 1 {
		fmt.Println("a 大於 1")
	} else if a > 5 {
		fmt.Println("a 大於 5")
	} else {
		fmt.Println("a 大於 1 且也大於 5")
	}

}

其他寫法 可以在 if 後使用宣告語句並進行判斷

package main

import (
	"fmt"
)

func main() {
	if a := 5; a >= 5 {
		fmt.Println(a)
	} else {
		fmt.Println("a小於等於5")
	}
}

Switch

Golang Switch 不用在 case 當中放入break
case 後方表達式可以有: 常量、變數、有返回值 func
且在 case 可以放入多個表達式使用 , 進行分開

package main

import "fmt"

func main() {
	a := 0
	b := 2
	switch a {
	//case 後可以接表達式(常量值、變數、有返回值的func)
	case returnZero(), 1:
		fmt.Println("case 0")
	case b, 3:
		fmt.Println("case 1")
	case 4, 5:
		fmt.Println("case 2")

	default:
		fmt.Println("當上述case皆沒有時則會到預設case")
	}
}

func returnZero() int {
	return 0
}

也可以用類似使用 if else 方式來使用

package main

import "fmt"

func main() {
	age := 10
	switch {
	case age == 10:
		fmt.Println("age == 10")
	case age == 20:
		fmt.Println("age == 20")
	default:
		fmt.Println("沒有匹配到")
	}

}

使用 fallthrough 跳至下一個case

package main

import "fmt"

func main() {
	age := 10
	switch {
	case age == 10:
		fmt.Println("age == 10")
		fallthrough
	case age == 20:
		fmt.Println("age == 20")
		fallthrough
	default:
		fmt.Println("沒有匹配到")
	}

}


上一篇
day17-Struct 結構介紹(二)
下一篇
day19-控制流程(for、break、continue、Goto)介紹
系列文
golang初探30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言