switch 是一個條件語句,用於將表達式的值與可能匹配的選項列表進行比較,並根據匹配情況執行相應的代碼塊。它可以被認為是替代多個 if else 子句的常用方式。 ...
一、if分支語句
if 布爾表達式 1 {
/* 在布爾表達式 1 為 true 時執行 */
}
if a := 2; a%2 == 0 { fmt.Println("偶數") }
if 布爾表達式 1 {
/* 在布爾表達式 1 為 true 時執行 */
}else{
/* todo else */
}
if a := 2; a%2 == 0 { fmt.Println("偶數") } else { fmt.Println("奇數") }
if 布爾表達式 1 { /* 在布爾表達式 1 為 true 時執行 */ }else if 布爾表達式 2{
/* 在布爾表達式 1 為 true 時執行 */
}else{ /* todo else */ }
func main() { var b = 70 if b >= 90 { fmt.Println("優秀") } else if b >= 80 { fmt.Println("良好") } else { fmt.Println("及格") } }
二、for迴圈語句
func main() { //=======格式1=========== for i := 0; i < 10; i++ { fmt.Println("i=", i) } //=======格式2=========== a := 2 for ; a < 5; a++ { fmt.Println("a=", a) } //=======格式3(死迴圈)==== b := 10 for { if b == 5 { break } b-- fmt.Println("b=", b) } }
break
語句用於在完成正常執行之前,突然終止 for 迴圈。
func main() { //=======格式1=========== for i := 0; i < 10; i++ { if i >= 5 { break } fmt.Println("i=", i) } }
輸出:i= 0;i= 1;i= 2;i= 3;i= 4
continue
語句用來跳出 for
迴圈中當前迴圈。在 continue
語句後的所有的 for
迴圈語句都不會在本次迴圈中執行。迴圈體會在一下次迴圈中繼續執行。
func main() { for i := 0; i < 5; i++ { if i == 3 { continue } fmt.Println("i=", i) } }
輸出:i= 0;i= 1;i= 2;i= 4
goto 語句類似continue
終止當前迴圈,進入指定的位置(Loop)繼續運行
func main() { num := 0 Loop: for num < 5 { num++ if num%4 == 0 { goto Loop } fmt.Println("i=", num) } }
三、swich分支語句
go語言中的switch語句預設每個case 都有break,這與java語言略有不同
func main() { //=========== 格式一 =========== switch finger := 3; finger { case 1: fmt.Println("1") case 2: fmt.Println("2") case 3: fmt.Println("3") default: fmt.Println("0") } //===========case後可以多個條件=========== letter := "i" switch letter { case "a", "e", "i", "o", "u": // 一個選項多個表達式 fmt.Println("hello") default: fmt.Println("word") } //在 switch 語句中,表達式是可選的,可以被省略。如果省略表達式,則表示這個 switch 語句等同於 switch true num := 75 switch { // 表達式被省略了 case num >= 0 && num <= 50: fmt.Println("num is greater than 0 and less than 50") case num >= 51 && num <= 100: fmt.Println("num is greater than 51 and less than 100") case num >= 101: fmt.Println("num is greater than 100") } }
fallthrough語句:在 Go 中,每執行完一個 case 後,會從 switch 語句中跳出來,不再做後續 case 的判斷和執行。使用 fallthrough
語句可以在已經執行完成的 case 之後,把控制權轉移到下一個 case 的執行代碼中。類似於java 中case之後不寫break
func main() { //=========== 格式一 =========== switch finger := 3; finger { case 1: fmt.Println("1") case 2: fmt.Println("2") case 3: fmt.Println("3") fallthrough default: fmt.Println("0") } }