溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言流程控制語句是什么

發(fā)布時間:2022-07-13 10:57:01 來源:億速云 閱讀:129 作者:iii 欄目:開發(fā)技術

這篇文章主要講解了“Go語言流程控制語句是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Go語言流程控制語句是什么”吧!

1.條件語句

幾個注意點和C#不一樣的。

if a < 5 {
       return 0
} else {
       return 1
}

① 條件語句不需要使用括號將條件包含起來 a<5 ,C#必須有()

②無論語句體內有幾條語句,花括號{}都是必須存在的;C#如果只有一條語句可以省略{}

③左花括號{必須與if或者else處于同一行 C#的{}是換行的

④在有返回值的函數(shù)中,不允許將“最終的”return語句包含在if...else...結構中,

否則會編譯失?。ㄟ@句話錯誤的 1.1版Go語言和之后的新版已經(jīng)支持if else條件語句直接return返回值。),所以上面的demo是可以編譯通過的。

2.選擇語句

①條件表達式不限制為常量或者整數(shù)

②單個case中,可以出現(xiàn)多個結果選項

③Go語言不需要用break來明確退出一個case;C#需要在每一個case結束之后加上break

④增加了fallthrough方法 主要用于多個相同case合并,Go就相當于默認加了break;

和C#正好相反

switch i {
case 0:
   fmt.Printf("0")
case 1:
   fmt.Printf("1")
case 2:
   fallthrough
case 3:
   fmt.Printf("3")
case 4, 5, 6:
   fmt.Printf("4, 5, 6")
default:
   fmt.Printf("Default")
}

如上例子,case 2中有語句fallthrough,那么當i=2時候,執(zhí)行完fallthrough會執(zhí)行case3,由此打印出了“3”

⑤可以不設定switch之后的條件表達式,在此種情況下,整個switch結構與多個if...else... 的邏輯作用等同。如下代碼

switch {
case 0 <= Num && Num <= 3:
   fmt.Printf("0-3")
case 4 <= Num && Num <= 6:
   fmt.Printf("4-6")
case 7 <= Num && Num <= 9:
   fmt.Printf("7-9")
}

3.循環(huán)語句

Go語言中的循環(huán)語句只支持for關鍵字,而不支持while和do-while結構。

①for后面的條件表達式不需要用圓括號()包含起來

模擬while語句:直接用for后面不加條件

sum := 0
for {
    sum++
    if sum > 100 {
       break
    }
}

②for循環(huán)中條件表達式中也支持多重賦值

a := []int{1, 2, 3, 4, 5, 6}
for i, j := 0, len(a) – 1; i < j; i, j = i + 1, j – 1 {
      a[i], a[j] = a[j], a[i]
}

如上代碼:

a) 初始值 i=0 ,j= len(a) &ndash; 1

b)循環(huán)的條件是 i < j

c)每執(zhí)行一次 i+1 ,j-1

循環(huán)體: a[i], a[j] = a[j], a[i]

Go語言中的for循環(huán)與C語言一樣,都允許在循環(huán)條件中定義和初始化變量,唯一的區(qū)別是,Go語言不支持以逗號為間隔的多個賦值語句,必須使用平行賦值的方式來初始化多個變量。

③Go語言的for循環(huán)同樣支持continue和break來控制循環(huán),但是它提供了一個更高級的break,可以選擇中斷哪一個循環(huán), 如下代碼:

break語句終止的是JLoop標簽處的外層循環(huán)

for j := 0; j < 5; j++ {
    for i := 0; i < 10; i++ {
        if i > 5 {
             break JLoop
         }
     fmt.Println(i)
  }
}
JLoop: //Do Something

如果是C#,只能跳出第一層循環(huán),而不能直接跳出第二層循環(huán),這也是區(qū)別的地方之一

4.跳轉語句

Go語言支持goto語句

func myfunc() {
  i := 0
  HERE:
   fmt.Println(i)
  i++
  if i < 10 {
    goto HERE
  }
}

for&hellip;range 是什么,就相當于原來的foreach中迭代 k,v結構。

for index, value := range mySlice {
  fmt.Println("index: " + index)
  fmt.Println("value: " + value)
}

當?shù)衅瑫r,關鍵字range 會返回兩個值。第一個值是當前迭代到的索引位置,第二個

值是該位置對應元素值的一份副本

Go語言流程控制語句是什么

這張圖比較好的說明了range的返回值,重點在于值是副本

感謝各位的閱讀,以上就是“Go語言流程控制語句是什么”的內容了,經(jīng)過本文的學習后,相信大家對Go語言流程控制語句是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI