【Golang】for case 迴圈使用者選擇
阿新 • • 發佈:2020-10-29
語法點:
-
for 迴圈 使用 case 函式,使用 break END 可以再輸入 exit 的時候退出,也可以用 return。
-
Go語言也支援label(標籤)語法:分別是 break label 和 goto label,break label 和 goto label 都能在迴圈中跳出迴圈。
-
2.1 break 的跳轉標籤 (label) 必須放在迴圈語句 for 前面,並且在 break label 跳出迴圈不再執行 for 迴圈裡的程式碼。如 案例一 所示;
- 不能標籤定義在 break 的下面
- break 標籤只能用於for迴圈;
-
2.2 goto label 的 label (標籤)既可以定義在 for 迴圈前面(案例三),也可以定義在 for 迴圈後面(案例四),當跳轉到標籤地方時,繼續執行標籤下面的程式碼。
-
但是由於在大專案中不好控制,所以建議能不使用goto label就不要使用;
-
label 在 for 前後位置不一樣,得到的退出結果也不一樣;
-
-
案例一:break label
package main import "fmt" func main() { END: for { var text string fmt.Print("請輸入指令: ") fmt.Scan(&text) switch text { case "add": fmt.Println("新增") case "modify": fmt.Println("修改") case "delete": fmt.Println("刪除") case "query": fmt.Println("查詢") case "exit": fmt.Println("退出") break END default: fmt.Println("輸入指令錯誤") } } }
案例二:return
package main import "fmt" func main() { for { var text string fmt.Print("請輸入指令: ") fmt.Scan(&text) switch text { case "add": fmt.Println("新增") case "modify": fmt.Println("修改") case "delete": fmt.Println("刪除") case "query": fmt.Println("查詢") case "exit": fmt.Println("退出") return default: fmt.Println("輸入指令錯誤") } } }
案例一、二 的 Gif 動態圖展示:
案例三:goto ,for 迴圈前面
package main
import "fmt"
func main() {
a := 1
END:
for a < 10 {
if a == 5 {
a++
goto END
}
fmt.Println(a)
a++
}
fmt.Println(a)
}
案例四:goto,for 迴圈後面
package main
import "fmt"
func main() {
a := 1
for a < 5 {
if a == 3 {
a++
goto END
}
fmt.Println(a)
a++
}
END:
fmt.Println(a)
}