[前言]
車輛需要依照交通規則、號誌與標誌來行駛,紅燈時停止、等待,綠燈直行或是轉彎,行駛速度也須遵守時速上限。在程式的世界中,執行程式的電腦也會遵守程式碼內所撰寫的控制結構來執行。在Golang的控制結構包含: If、Switch與For。
注意: goto 這個控制結構我們先不研究歐!
[ If 陳述式]
Golang的if 陳述式用來控制程式執行符合條件的區塊,以下是 語法:
if condition1 {
// 如果 condition1 是true, 則此區塊會被執行
} else if condition2 {
// 如果 condition2 是true, 則此區塊會被執行
} else {
// 如果 condition1 與 condition2 都不是true, 則此區塊會被執行
}
If陳述式內的條件(condition),可以是產生 true / false 的運算式、變數的值等等。也可以利用 && (and) 或是 || (or) 去做交集或是聯集關係。
請看下列簡單的例子
myAge := 18
if myAge < 18 {
fmt.Println("My age is less than 18")
} else if myAge == 18 {
fmt.Println("My age is 18")
} else {
fmt.Println("My age greater than 18")
}
myName := "Danny"
if myAge == 18 && myName == "Danny" {
fmt.Println("Bingo")
} else {
fmt.Println("Oops")
}
執行結果:
My age is 18
Bingo
[Switch 陳述式]
Switch 陳述式採用表達式並將其與可能的條件清單匹配。找到匹配項目後,它會執行指定匹配條件區塊內的程式碼。其中,Switch可以不帶條件,我們先改寫上列的例子:
myAge2 := 18
switch {
case myAge2 < 18:
fmt.Println("My age is less than 18")
case myAge2 == 18:
fmt.Println("My age is 18")
default:
fmt.Println("My age greater than 18")
}
但一般常用的情形是有帶條件的switch,例如:
day:= 3
switch day {
case 1, 2, 3, 4, 5:
fmt.Println("上班日")
case 6:
fmt.Println("周末")
case 7:
fmt.Println("周日")
default:
fmt.Println("錯誤輸入")
}
[For 迴圈]
Golang 只有一個迴圈陳述式:For 迴圈,其用於重複執行程式碼區塊。以下是 Golang 中 For 迴圈的一般語法:
for initialization; condition; increment {
// 重複執行的區塊
}
直接看一個例子:
initialization 就是初始化一個變數與值( i := 0 )
condition為 (i < 10),For迴圈會不段重複執行,當 i < 10 成立
increment 為 ( i++), 意思是每次重複執行程式碼區塊後,i加上1
for i := 0; i < 10; i++ {
fmt.Println("數字:", i)
}
上述的例子都可以參考下列 go playground 並執行
結果:My age is 18
Bingo
My age is 18
數字: 0
數字: 1
數字: 2
數字: 3
數字: 4
數字: 5
數字: 6
數字: 7
數字: 8
數字: 9
My age is 18
Bingo
My age is 18
數字: 0
數字: 1
數字: 2
數字: 3
數字: 4
數字: 5
數字: 6
數字: 7
數字: 8
數字: 9
No comments:
Post a Comment