switch是最靈活的一種控制語句,在使用switch時候,需要注意:
--左花括號"{"必須與switch處于同一行
--條件表達式不限制為常量或者整數
--單個case中,可以出現多個結果選項
--與C語言等規則相反,G0語言不需要break來明確退出一個case
--只有在case中明確添加fallthrough關鍵字,才會繼續執行緊跟的下一個case
--可以不設定switch之后的條件表達式,在此種情況下,整個switch結構與多個if....else的邏輯作用等同
--可以有任意數量的case語句在switch內,每個case后跟值進行比較,以及一個冒號
--在switch語句中使用的表達式必須具有整體或布爾表達式,或者是一個類型,如果表達式不通過,默認值為true
--constant-expression的情況,必須是相同的數據類型,在switch的變量,它必須是一個常量或文字
--switch語句可有一個可選的default,它必須出現在switch語句的末尾,default可用于在沒有任何case為真時執行任務,default之后不需要break語句
流程圖
egg1:
package main
import "fmt"
func main() {
var grade string = "A"
switch {
case grade == "A":
fmt.Printf("Good....\n")
case grade == "B":
fmt.Printf("Well Done....\n")
case grade == "C":
fmt.Printf("Ok....")
default:
fmt.Printf("iNVALID grade....\n")
}
fmt.Printf("Your grade is %s\n", grade)
}
egg2:
package main
import "fmt"
func main() {
switch a := 1; {
case a >= 0:
fmt.Printf("a>=0")
fallthrough //如果不加這個只會打印a>=0,不會執行后面的a>=1的語句,若要讓每個case都判斷,都要在case 后面加 fallthrough
case a >= 1:
fmt.Printf("a=1")
default:
fmt.Printf("not found...")
}
}
##需要注意的是跟在switch屬于局部的變量,只能在內部實現訪問,若要全局必須在switch外部
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。