国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Go語言學(xué)習(xí)(4)-流程控制

2019-11-11 00:00:20
字體:
供稿:網(wǎng)友
1、條件語句if a < 5 { return 0} else { return 1}

關(guān)于條件語句,需要注意以下幾點(diǎn): 條件語句不需要使用括號(hào)將條件包含起來(); 無論語句體內(nèi)有幾條語句,花括號(hào){}都是必須存在的; 左花括號(hào){必須與if或者else處于同一行; 在if之后,條件語句之前,可以添加變量初始化語句,使用;間隔; 在有返回值的函數(shù)中,不允許將“最終的”return語句包含在if…else…結(jié)構(gòu)中, 否則會(huì)編譯失敗: function ends without a return statement。 失敗的原因在于,Go編譯器無法找到終止該函數(shù)的return語句。編譯失敗的案例如下:

func example(x int) int { if x == 0 { return 5 } else { return x }}

2、選擇語句

switch i { case 0: fmt.運(yùn)行上面的案例,將會(huì)得到如下結(jié)果: i = 0時(shí),輸出0; i = 1時(shí),輸出1; i = 2時(shí),輸出3; i = 3時(shí),輸出3; i = 4時(shí),輸出4, 5, 6; i = 5時(shí),輸出4, 5, 6; i = 6時(shí),輸出4, 5, 6; i = 其他任意值時(shí),輸出Default。 比較有意思的是,switch后面的表達(dá)式甚至不是必需的,比如下面的例子:

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")}

在使用switch結(jié)構(gòu)時(shí),我們需要注意以下幾點(diǎn): 左花括號(hào){必須與switch處于同一行; 條件表達(dá)式不限制為常量或者整數(shù); 單個(gè)case中,可以出現(xiàn)多個(gè)結(jié)果選項(xiàng); 與C語言等規(guī)則相反,Go語言不需要用break來明確退出一個(gè)case; 只有在case中明確添加fallthrough關(guān)鍵字,才會(huì)繼續(xù)執(zhí)行緊跟的下一個(gè)case; 可以不設(shè)定switch之后的條件表達(dá)式,在此種情況下,整個(gè)switch結(jié)構(gòu)與多個(gè)if…else…的邏輯作用等同。

3、循環(huán)語句

示例1:

sum := 0 for i := 0; i < 10; i++ { sum += i }

可以看到比較大的一個(gè)不同在于for后面的條件表達(dá)式不需要用圓括號(hào)()包含起來。Go語言還進(jìn)一步考慮到無限循環(huán)的場(chǎng)景,讓開發(fā)者不用寫無聊的for (;;) {} 和 do {} while(1);而直接簡(jiǎn)化為如下的寫法: 示例2:

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

在條件表達(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]}

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

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

本例中,break語句終止的是JLoop標(biāo)簽處的外層循環(huán)。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兰考县| 镇康县| 河北区| 新津县| 张家界市| 正蓝旗| 铁力市| 通化市| 体育| 双峰县| 丹巴县| 陇西县| 林州市| 烟台市| 丹江口市| 武威市| 安泽县| 林口县| 阿勒泰市| 香河县| 陈巴尔虎旗| 漠河县| 什邡市| 临沭县| 平安县| 阿坝县| 五寨县| 新干县| 错那县| 繁峙县| 乾安县| 新巴尔虎左旗| 左云县| 太谷县| 梅河口市| 长海县| 桃源县| 晋中市| 临湘市| 来宾市| 安塞县|