這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
if語句:
package mainimport "fmt"func main() { //if後面沒有括弧 if 1 < 2 { fmt.Println("1<2") } var a = 10 //初始設定式-a的作用範圍只在if語句塊 if a := 1; a > 1 { fmt.Println("a > 1") fmt.Println(a) } else { fmt.Println("! a > 1") fmt.Println(a) } fmt.Println(a)}
輸出如下:
1<2! a > 1110
for語句:
package mainimport "fmt"func main() { //第1種形式無限迴圈 a := 1 for { a++ if a > 3 { break } fmt.Println(a) } fmt.Println(a) //第2種形式 for a <= 6 { a++ fmt.Println(a) } //第3種形式 for i := 0; i < 3; i++ { a++ fmt.Println(a) } fmt.Println(a)}
234567891010
case語句:
package mainimport "fmt"func main() { a := 1 switch a { case 0: fmt.Println("a==0") case 1: fmt.Println("a==1") default: fmt.Println("None") } //case運算式 switch { case a >= 0: fmt.Println("a>=0") case a >= 1: fmt.Println("a>=1") default: fmt.Println("None") } //case運算式 fallthrough switch { case a >= 0: fmt.Println("a>=0") case a >= 1: fmt.Println("a>=1") fallthrough case a >= -1: fmt.Println("a>=-1") default: fmt.Println("None") } //初始化b只在case中有效範圍 switch b := 1; { case b >= 0: fmt.Println("b>=0") fallthrough case b >= 1: fmt.Println("b>=1") fallthrough case b >= -1: fmt.Println("b>=-1") default: fmt.Println("None") } // undefined: b--如果在case中定義,那麼只在局部有效 //fmt.Println(b)}
a==1a>=0a>=0b>=0b>=1b>=-1
goto、continue、break語句:
package mainimport "fmt"func main() { //goto直接調到LAbEL2 for { for i := 0; i < 10; i++ { if i > 3 { goto LAbEL2 } } } fmt.Println("PreLAbEL2")LAbEL2: fmt.Println("LastLAbEL2") //break跳出和LAbEL1同一層級的迴圈,繼續執行其他的LAbEL1: for { for i := 0; i < 10; i++ { if i > 3 { break LAbEL1 } } } fmt.Println("OK") //continueLABEL3: for i := 0; i < 3; i++ { for { continue LABEL3 } } fmt.Println("ok")}
輸出如下:
LastLAbEL2OKok