久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Go 語言的分支語句

本文主要學(xué)習(xí) Go 語言中的分支語句。一共要介紹的有兩個(gè),分別式?if…else?和?switch…case。他們二者在 Go 語言中都做了新的功能拓展。

Tips:其中還有一個(gè)分支語句select…case我們將在Go語言的通道中介紹。

 

1. if…else

在 Go 語言中?if?關(guān)鍵字的作用和其它大部分語言相同,是用于測試某個(gè)布爾表達(dá)式或布爾值是否為真的。若為真則執(zhí)行if之后{}中的語句,否則跳過這些語句。如果存在第二個(gè)分支,則需要使用?else?關(guān)鍵字,還需要增加分支的話就需要使用?else if?關(guān)鍵字了。

示例代碼:

代碼塊
  • 1? package main
  • 2
  • 3? import "fmt"
  • 4
  • 5 ?func main() {
  • 6? ? ? ? ? a := 10
  • 7? ? ? ? ? if a > 10 {
  • 8? ? ? ? ? ? ? ? ? fmt.Println("a大于10")
  • 9? ? ? ? ? } else if a < 0 {
  • 10? ? ? ? ? ? ? ? fmt.Println("a小于0")
  • 11? ? ? ? } else {
  • 12? ? ? ? ? ? ? ? fmt.Println("a的值是", a)
  • 13? ? ? ? }
  • 14? }
  • 第 7 行:判斷 a 是否大于 10,顯然不滿足,代碼走向下一個(gè)分支?else if。Go 語言中的?if?的條件語句不需要使用?();
  • 第 9 行:繼續(xù)判斷a是否小于0,顯然也不滿足,走向最后一個(gè)分支?else。因?yàn)?Go 語言中使用回車符來象征語句結(jié)束,所以?esle?必須寫成?}else{?的形式,不然就識(shí)別為?if?語句結(jié)束了;
  • 第 11 行:之前的分支條件都不成立,執(zhí)行最后一個(gè)分支;
  • 第 12 行:打印變量 a 的值。

輸出結(jié)果:

圖片描述

在Go語言中,if?后的條件表達(dá)式,還有一種特別的寫法,可以在條件表達(dá)式之前寫一個(gè)賦值表達(dá)式。

if…else 的特殊用法:

代碼塊
  • 1? package main
  • 2
  • 3? import "fmt"
  • 4
  • 5? func main() {
  • 6? ? ? ? if a := 10; a > 10 { //賦值表達(dá)式和條件表達(dá)式之間使用;隔開
  • 7? ? ? ? ? ? ? ? fmt.Println("a大于10")
  • 8? ? ? ? } else {
  • 9? ? ? ? ? ? ? ?? fmt.Println("a的值是", a)
  • 10? ? ? }
  • 11? }

執(zhí)行結(jié)果:

圖片描述

 

2. switch…case

Go語言對(duì)?switch…case?的功能進(jìn)行了擴(kuò)展,它變得更加的通用。switch?之后可以什么都不帶。case?也無需是一個(gè)固定值,也可以是一個(gè)布爾表達(dá)式,而且每一個(gè) case 都是一個(gè)獨(dú)立的代碼塊,執(zhí)行完了之后立刻跳出?switch,不需要使用?break。所以可以把?if…else?完美的改寫成?switch…case?的形式。

Tips:還有一種?switch?語句叫做?type switch,我們將在學(xué)習(xí)接口時(shí)介紹它

switch…case 傳統(tǒng)用法代碼示例:

代碼塊
  • 1 ?package main
  • 2
  • 3? import "fmt"
  • 4
  • 5? func main() {
  • 6? ? ? ? ? a := "A"
  • 7? ? ? ? ? switch a {
  • 8? ? ? ? ? case "A", "a":
  • 9? ? ? ? ? ? ? ? ? fmt.Println("分?jǐn)?shù)區(qū)間為90~100")
  • 10? ? ? ? case "B", "b":
  • 11? ? ? ? ? ? ? ? fmt.Println("分?jǐn)?shù)區(qū)間為70~89")
  • 12? ? ? ? case "C", "c":
  • 13? ? ? ? ? ? ? ? fmt.Println("分?jǐn)?shù)區(qū)間為0~70")
  • 14? ? ? ? default:
  • 15? ? ? ? ? ? ? ?fmt.Println("錯(cuò)誤的評(píng)分")
  • 16? ? ? ? }
  • 17? }
  • 第 7 行:和傳統(tǒng)用法一致,去求變量 A 的值和那個(gè) case 匹配;
  • 第 8 行:case 后面的值使用逗號(hào)隔開,用于表示匹配任意一個(gè)值;
  • 第 14 行:每一個(gè) switch 中最多可以帶一個(gè) default。

輸出結(jié)果:

圖片描述

switch…case Go 語言中的新用法:

代碼塊
  • 1? package main
  • 2
  • 3? import "fmt"
  • 4
  • 5? func main() {
  • 6? ? ? ? ? a := 50
  • 7? ? ? ? ? switch {
  • 8? ? ? ? ? case a < 60:
  • 9? ? ? ? ? ? ? ? ? ? fmt.Println("不及格")
  • 10? ? ? ? case a < 80:
  • 11? ? ? ? ? ? ? ? ? fmt.Println("良好")
  • 12? ? ? ? case a <= 100:
  • 13? ? ? ? ? ? ? ? ? fmt.Println("優(yōu)秀")
  • 14? ? ? ? default:
  • 15? ? ? ? ? ? ? ? ? fmt.Println("分?jǐn)?shù)最多為100分")
  • 16? ? ? ? }
  • 17? }
  • 第 7 行:switch 后不帶任何參數(shù),直接執(zhí)行第1個(gè) case 的判定;
  • 第 8 行:case 后面帶的是一個(gè)布爾表達(dá)式,若值為 true ,則執(zhí)行其后代碼塊;
  • 第 14 行:default 在這里就充當(dāng)?else?的角色。

輸出結(jié)果:

圖片描述

 

3. 小結(jié)

本文主要學(xué)習(xí)了Go語言中的分支結(jié)構(gòu),其中需要注意的是在Go語言中的特殊寫法:

  • if?的條件表達(dá)式無需使用括號(hào);
  • if?的條件表達(dá)式之前可以跟一個(gè)賦值表達(dá)式,與條件表達(dá)式之間使用;分割;
  • switch?關(guān)鍵字之后可以不帶變量;
  • case?關(guān)鍵字后面可以跟布爾表達(dá)式;
  • if…else?語句中,else if?如果特別多的情況下一般建議使用?switc…case?來代替。

文章來源于網(wǎng)絡(luò),侵刪!

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!

    1. 主站蜘蛛池模板: 文化| 昂仁县| 顺平县| 慈溪市| 平乡县| 会同县| 尼木县| 隆林| 鄂尔多斯市| 东至县| 西充县| 含山县| 犍为县| 神农架林区| 桂东县| 永平县| 黄梅县| 万山特区| 崇明县| 静宁县| 汝州市| 苍南县| 华蓥市| 西城区| 营山县| 沙雅县| 五原县| 七台河市| 岳阳市| 胶南市| 临清市| 潍坊市| 虎林市| 改则县| 泽普县| 沐川县| 盖州市| 彭州市| 乌鲁木齐市| 岳西县| 嘉鱼县|