日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Go 流程控制

發布時間:2025/3/20 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go 流程控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#### Go 程序流程控制
***渡風渡塵緣,修行亦修心***
在程序中主要有三大程序程控語句.
1. 順序控制
2. 分支控制
3. 循環控制
##### 順序控制
程序從上到下逐行執行,中間沒有任何判斷和跳轉 package mainimport "fmt"func main(){var a = 1var b = 2fmt.Println(a)fmt.Println(b)var c = 3var d = 4fmt.Println(c)fmt.Println(d) }

  


---
##### 分支控制
分支控制就是讓程序有選擇的執行,有以下幾種形式
1. 單分支
2. 雙分支
3. 多分支
######單分支
if 條件表達式{
代碼塊
}
當條件表達式為true時,會執行{} 中的代碼,{} 必須有; package mainimport "fmt"func main(){var num = 10var guess intfmt.Print("please guess the number: ")fmt.Scanln(&guess)if guess > num {fmt.Println("be smaller")}// 也支持在if 中直接定義一個變量使用if a := 11;a >num {fmt.Println("a > 10")} }

  


單分支流程圖如下:



###### 雙分支
if 條件表達式{
代碼塊1
} else {
代碼塊2
}
當條件表達式成立時,執行代碼塊1,否則執行代碼塊2,{} 必須有; package mainimport "fmt"func main(){var num = 10var guess intfmt.Print("please guess the number: ")fmt.Scanln(&guess)if guess > num {fmt.Println("be smaller")} else {fmt.Println("be bigger")} }

  


雙分支流程圖如下:


###### 多分支
if 條件表達式1 {
代碼塊1
} else if 條件表達式2 {
代碼塊2
} .... {
......
} else {
代碼塊3
}
多分支判斷流程如下:
(1). 先判斷條件表達1是否成立, 如果為真, 就執行代碼塊1;
(2). 如果條件表達式1不成立,判斷條件表達2是否成立,如果為真,執行代碼塊2;
(3). 依次類推;
(4). 如果所有的條件表達式都不成立,則執行else 語句塊;
(5). else 不是必須的;
(6). 多分支只能有一個執行入口; package mainimport "fmt"func main(){var score intfmt.Print("please enter a grade: ")fmt.Scanln(&score)if score < 60 {fmt.Println("差")} else if score >=60 && score < 80 {fmt.Println("良好")} else if score >=80 && score < 100 {fmt.Println("優秀")} }

  


多分支流程如下:


###### 嵌套分支
在一個分支結構中又完整嵌套了另一個完整的分支結構,里面的分支稱為內層分支,外面的分支稱為外層分支;
if 條件表達式{
if 條件表達式{
}else {
}
}
嵌套分支建議控制在3 層以內; package mainimport "fmt"func main(){var score intfmt.Print("please enter a grade: ")fmt.Scanln(&score)if score >= 60 {if score >= 80 {fmt.Println("優秀")} else {fmt.Println("良好")}} else {fmt.Println("差")} }

  


###### switch 分支控制
switch 語句用于根據不同條件執行不同動作,每個case 分支都是唯一的,從上到下匹配;
匹配項后面不需要加break ;
switch 表達式{
case 表達式1,表達式2:
語句塊1
case 表達式3,表達式4:
語句塊2
.... // 可以有多個case 語句
default:
語句塊
} package mainimport "fmt"func main(){var week intfmt.Print("please input a number[0-6]:")fmt.Scanln(&week)switch week {case 1:fmt.Println("Monday")case 2:fmt.Println("Tuesday")case 3:fmt.Println("Wednesday")case 4:fmt.Println("Thursday")case 5:fmt.Println("Friday")case 6:fmt.Println("saturday")case 0:fmt.Println("Sunday")//case 8.1: // 錯誤, 類型不一致//case 6: // 錯誤, 常量值重復} }

  


switch 分支如下:


1. switch 執行的流程是先執行表達式,得到值,然后和case 表達式進行比較,如果相等,執行case 對應的語句塊,然后退出switch 控制;
2. 如果switch 的表達式的值 沒有和任何的case 表達式匹配上,則執行default 語句塊,執行后退出switch 控制;
3. case 后的表達式可以有多個,使用逗號分隔;
4. case 語句塊不需要寫break, 默認執行完case 后退出switch 控制;
5. case/switch 后是一個表達式, 可以是常量值,變量,一個有返回值的函數;
6. case 后的表達式的值的數據類型, 必須和switch 的表達式的數據類型一致;
7. case 后面的表達式如果是常量的值,則不能重復;
8. default 不是必須的;
9. switch 后也可以不帶表達式,類似if - else 分支使用;
10. 穿透-fallthrough , 如果在case 語句后增加fallthrough, 則會繼續執行下一個case;
11. switch 也可以用來判斷某個interface 變量中實際指向的變量類型; package mainimport "fmt"func main(){var week intfmt.Print("please input a number[0-6]:")fmt.Scanln(&week)switch {case week == 1:fmt.Println("Monday")case week ==2 :fmt.Println("Tuesday")case week == 3 :fmt.Println("Wednesday")case week == 4:fmt.Println("Thursday")}// 也可以判斷switch {case week > 5:fmt.Println("it is weekend") case week <= 5: fmt.Println("it is work day") fallthrough default:fmt.Println("it is work day")} }

  

package mainimport "fmt"func main(){var i interface{}var a = "ss"i = aswitch i.(type) {case int:fmt.Println("a type is int")case float64:fmt.Println("a type is float64")default:fmt.Println("unknow type")} }

  最近在寫微信公眾號,歡迎大家關注,一同交流學習;??

轉載于:https://www.cnblogs.com/Mail-maomao/p/11376200.html

總結

以上是生活随笔為你收集整理的Go 流程控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。