寫在前面:各類程式語言中的if for switch語句的文法基本上是類似的,隻需要注意go語言與其他程式語言的不同之處就好。
if語句
特例:go語言中if語句中可以包含變量的申明,但是其作用域僅僅在目前的if語句結構當中可用。
if num := 99; num >= 60 {
fmt.Printf("分數為:%d.恭喜及格\n", num)
} else {
fmt.Printf("分數為:%d.不及格\n", num)
}
如上,num在該if-else結構語句當中定義,是以其作用域僅僅在該語句結構當中有效。
switch-case語句
tips:
1.case是無序的
2.case後的數值是唯一的
3.case後可跟随多個數值
4.case後的數值必須與switch作用的變量類型保持一緻
5.如果省略了switch後面的變量,則預設是bool類型且作用在true上
go中的fallthrough可穿透目前case到達下一個case,且fallthrough隻可放在某個case中的最後一行
for語句
/*
for 表達式1,表達式2,表達式3{\
......
}
*/
for i:=1;i<6;i++ {
fmt.Printf("i-->%d\n",i)
}
//fmt.Printf(i)//報錯,因為i的作用域僅在for結構内有效
隻有表達式2時,正常情況下是for ; i<6 ; (…)然鵝go語言中";"可以省略,是以就可寫成如下形式。該形式與上述for循環的差別就在于i的作用域發生改變。
i:=1
for i<6 {
fmt.Printf("i-->%d\n",i)
}
fmt.Printf(i)
省略表達式2時,相當于直接作用于表達式2=true的條件上,此時for循環的功能便和while(true){…}相同
i := 1
for {
fmt.Printf("i-->%d\n",i)
i++
}
for中的continue語句,跳過目前循環,直接執行下一次循環
for i := 1; i <= 9; i++ {
if i == 5 {
continue
}
fmt.Printf("%d", i)
}
//輸出結果為12346789(跳過5)