if / else 分支判斷
example 2
1 | if condition1 { |
example 3
1 | if condtion1 { |
tips
else
或是else if
一定是放在上一個語句塊的}
右邊,以下為錯誤範例1
2
3
4
5
6if condtion {
}
else {
}
if判斷錯誤(if err != nil)
通常調用函數時會返回一個結果加一個錯誤1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16package main
import (
"io/ioutil"
"fmt"
)
func main(){
FileName := "test.log"
content,err := ioutil.ReadFile(FileName)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("%s\n",content)
}
}
可在if語句中定義變量,並用;
隔開判斷語句1
2
3
4
5
6
7
8
9
10
11
12
13
14
15package main
import (
"io/ioutil"
"fmt"
)
func main(){
FileName := "test.log"
if content,err := ioutil.ReadFile(FileName); err != nil {
fmt.Println(err)
} else {
fmt.Printf("%s\n",content)
}
}
- 在if語句內定義的變量,作用域就只在if/else代碼塊中
只要跳脫if/else語句代碼塊之外便不能訪問
switch case 語句
- 與c語言不一樣的地方就是每個case之間不需要
break
也不會穿透到其他case
- 如果仍想要穿透其他
case
執行可以在兩個case
之間加上關鍵字fallthrough
example 1
1 | switch var { |
[1] 要是前面的case
都不符合,default
用來執行一個默認的分支
example 2
多個值要使用相同的case可以寫在同一個case的條件語句中1
2
3
4
5
6
7
8
9var a int = 0
switch a {
case 0,1,3,5,7,9:
fmt.Println("It's 0 or 1,3,5,7,9")
case 2:
fmt.Println("It's 2")
default:
fmt.Println("It's default")
}
example 3
switch
後可以沒有表達式,case
後使用條件語句1
2
3
4
5
6
7
8
9
10
11var i int = 0
switch {
case i<0 && i>-1:
fmt.Println("-1<i<0")
case i>0 && i<1:
fmt.Println("0<i<1")
case i == 0:
fmt.Println("i = 0")
default:
fmt.Println("i didn't between 1 and -1")
}
example 4
switch
關鍵字後面可以初始化值1
2
3
4
5
6
7
8
9
10switch i:=0;{ //[1]
case i<0 && i>-1:
fmt.Println("-1<i<0")
case i>0 && i<1:
fmt.Println("0<i<1")
case i == 0:
fmt.Println("i = 0")
default:
fmt.Println("i didn't between 1 and -1")
}
[1]注意初始化值為一語句,後面需加上分號;
,否則無法編譯