1. 程式人生 > >Go入門自學寶典008-流程控制語句(條件語句)

Go入門自學寶典008-流程控制語句(條件語句)

流程控制語句
Go語言支援最基本的三種程式執行結構:順序結構、選擇結構、迴圈結構。
 順序結構:程式按順序執行,不發生跳轉。
 選擇結構:依據是否滿足條件,有選擇的執行相應功能。
 迴圈結構:依據條件是否滿足,迴圈多次執行某段程式碼。

008.1 選擇結構
008.1.1 if語句
008.1.1.1 if
var a int = 3
if a == 3 { //條件表示式沒有括號
fmt.Println(“a==3”)
}

//支援一個初始化表示式, 初始化字句和條件表示式直接需要用分號分隔
if b := 3; b == 3 {
    fmt.Println("b==3")
}

008.1.1.2 if … else
if a := 3; a == 4 {
fmt.Println(“a==4”)
} else { //左大括號必須和條件語句或else在同一行
fmt.Println(“a!=4”)
}

008.1.1.3 if … else if … else
if a := 3; a > 3 {
fmt.Println(“a>3”)
} else if a < 3 {
fmt.Println(“a<3”)
} else if a == 3 {
fmt.Println(“a==3”)
} else {
fmt.Println(“error”)
}

008.1.2 switch語句
Go裡面switch預設相當於每個case最後帶有break,匹配成功後不會自動向下執行其他case,而是跳出整個switch, 但是可以使用fallthrough強制執行後面的case程式碼:
var score int = 90

switch score {
case 90:
    fmt.Println("優秀")
    //fallthrough
case 80:
    fmt.Println("良好")
    //fallthrough
case 50, 60, 70:
    fmt.Println("一般")
    //fallthrough
default:
    fmt.Println("差")
}

可以使用任何型別或表示式作為條件語句:
//1
switch s1 := 90; s1 { //初始化語句;條件
case 90:
fmt.Println(“優秀”)
case 80:
fmt.Println(“良好”)
default:
fmt.Println(“一般”)
}

//2
var s2 int = 90
switch { //這裡沒有寫條件
case s2 >= 90: //這裡寫判斷語句
    fmt.Println("優秀")
case s2 >= 80:
    fmt.Println("良好")
default:
    fmt.Println("一般")
}

//3
switch s3 := 90; { //只有初始化語句,沒有條件
case s3 >= 90: //這裡寫判斷語句
    fmt.Println("優秀")
case s3 >= 80:
    fmt.Println("良好")
default:
    fmt.Println("一般")
}

練習:
1、已知兩個數輸出大的那個數
2、已知三個數輸出大的那個數