iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0
自我挑戰組

30 天學 Golang?Go 啦哪次不 Go系列 第 6

Day6# 流程控制

在第六天開始前,先祝各位朋朋中秋節快樂!
在寫程式時,時常必須根據不同的狀況做出不同的對應機制,而處理的這件事情就叫做流程控制。

在 Go 有兩種方式可以負責處理這件事,一種是 if 另一種是 switch
如果已經準備好了,那我們就開始吧 ─=≡Σ(((っ゚∀゚)っ

if

if 為開頭,並在 () 內寫上條件,透過判斷條件是否為 true 才執行 {} 內的程式碼。

if(條件) {
    // 如果條件成立,就執行 {} 內的程式碼
}

來個範例執行看看吧:

package main

import "fmt"

func main() {
	age := 13

	if age < 18 {
		fmt.Println("未成年")
	}
}

另外值得注意的是, () 是可以被省略的,但是 {} 必須存在。

if age < 18 {
	fmt.Println("未成年")
}

登登,狀況題一來了!
如果想要是成年人的狀況也能印出文字的話,是不是就要寫兩次 if 了?

NO! 其實 if 後面還能再多帶 else,這樣在條件不成立時,就會讓流程進入 else{} 內。

if(條件) {
    // 如果條件成立,就執行 {} 內的程式碼
} else {
    // 如果條件不成立,就執行此 {} 內的程式碼
}
package main

import "fmt"

func main() {
    age := 13
    
    if age < 18 {
        fmt.Println("未成年")
    } else {
        fmt.Println("成年")
    }
}

登登愣,狀況題二來了!
欸...可以多幫我分類一個 70 歲以上的是老年人嗎?

這種情況,可以用 if...else if...else... 的方法。

if(條件) {
    // 如果條件成立,就執行此 {} 內的程式碼
} else if (條件2) {
    // 如果條件2成立,就執行此 {} 內的程式碼
} else {
    // 如果條件不成立,就執行此 {} 內的程式碼
}
package main

import "fmt"

func main() {
	age := 13

	if age < 18 {
		fmt.Println("未成年")
	} else if age < 70 {
		fmt.Println("成年")
	} else {
		fmt.Println("老年")
	}
}

switch

如果已經很確定要判斷的內容會是哪些,用 switch 的方式就能夠寫出更好閱讀的程式碼。

swich 變數或運算式 {
    case 條件1:
        // 執行內容
    case 條件2:    
        // 執行內容
    default:
        // 當所有條件都不符合,就執行 default
}
package main

import "fmt"

func main() {
	weather := "晴天"

	switch weather {
	case "雨天":
		fmt.Println("帶雨傘!")
	case "陰天":
		fmt.Println("加件外套")
	default:
		{
			fmt.Println("擦防曬!")
		}
	}
}

結尾

總算在中秋節前壓線成功(抖到爆
第六天的內容就到這邊結束,如果有任何問題歡迎與我告知 :)


上一篇
Day5# For loop
下一篇
Day7# Array & Slice(上)
系列文
30 天學 Golang?Go 啦哪次不 Go20

尚未有邦友留言

立即登入留言