人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

Go語言流程控制語句

發(fā)布日期:2022-07-15 19:36 | 文章來源:源碼中國

1.條件語句

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

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

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

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

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

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

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

2.選擇語句

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

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

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

④增加了fallthrough方法 主要用于多個相同case合并,Go就相當(dāng)于默認(rèn)加了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,那么當(dāng)i=2時候,執(zhí)行完fallthrough會執(zhí)行case3,由此打印出了“3”

⑤可以不設(shè)定switch之后的條件表達(dá)式,在此種情況下,整個switch結(jié)構(gòu)與多個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關(guān)鍵字,而不支持while和do-while結(jié)構(gòu)。

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

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

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

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

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) – 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標(biāo)簽處的外層循環(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.跳轉(zhuǎn)語句

Go語言支持goto語句

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

for…range 是什么,就相當(dāng)于原來的foreach中迭代 k,v結(jié)構(gòu)。

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

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

值是該位置對應(yīng)元素值的一份副本

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

到此這篇關(guān)于Go語言流程控制語句的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持本站。

美國穩(wěn)定服務(wù)器

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部