亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

golang流程控制語句怎么使用

發布時間:2022-12-29 10:24:07 來源:億速云 閱讀:87 作者:iii 欄目:編程語言

本文小編為大家詳細介紹“golang流程控制語句怎么使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“golang流程控制語句怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

流程控制語句:1、if語句,由一個布爾表達式后緊跟一個或多個語句組成;2、“if…else”語句,else中的表達式在布爾表達式為false時執行;3、switch語句,用于基于不同條件執行不同動作;4、select語句;5、for循環語句,語法“for k,v := range oldmap{newmap[k]=v}”;6、循環控制語句break、continue、goto。

1、條件分支語句

和c語言類似,相關的條件語句如下表所示:

語句描述
if 語句if 語句 由一個布爾表達式后緊跟一個或多個語句組成。
if…else 語句if 語句 后可以使用可選的 else 語句, else 語句中的表達式在布爾表達式為 false 時執行。
switch 語句switch 語句用于基于不同條件執行不同動作。
select 語句select 語句類似于 switch 語句,但是select會隨機執行一個可運行的case。如果沒有case可運行,它將阻塞,直到有case可運行。
  • if語句
    語法如下:

if 布爾表達式 {
   /* 在布爾表達式為 true 時執行 */
}

  • if-else語句

if 布爾表達式 {
   /* 在布爾表達式為 true 時執行 */
} else {
	/* 在布爾表達式為 false 時執行 */
}

  • switch語句
    其中的變量v可以是任何類型,val1val2可以是同類型的任意值,類型不局限為常量或者整數,或者最終結果為相同類型的表達式。

switch v {
    case val1:
        ...
    case val2:
        ...
    default:
        ...
}

  • select語句
    select 是 Go 中的一個控制結構,類似于用于通信的 switch 語句。每個 case 必須是一個通信操作,要么是發送要么是接收。它將會隨機執行一個可運行的 case。如果沒有 case 可運行,它將阻塞,直到有 case 可運行。一個默認的子句應該總是可運行的。

select {
    case communication clause  :
       statement(s);      
    case communication clause  :
       statement(s);
    /* 你可以定義任意數量的 case */
    default : /* 可選 */
       statement(s);
}

注意:

  • 每個case必須都是一個通信

  • 所有channel表達式都會被求值,所有被發送的表達式都會被求值

  • 如果任意某一個通信都可以,它就執行,其他就忽略

  • 如果有多個case都可以運行,select就會隨機挑選一個來執行。

  • 如果沒有一個case可以被運行:如果有default子句,就執行default子句,select將被阻塞,直到某個通信可以運行,從而避免饑餓問題。

2、循環語句

2.1 循環處理語句

與多數語言不同的是,Go語言中的循環語句只支持 for 關鍵字,而不支持 while 和 do-while 結構,關鍵字 for 的基本使用方法與C語言和 C++ 中非常接近。

go中時使用for實現循環的,共有三種形式:


語法
和c語言中的for相同for init; condition; post {}
和c語言中的while相同for condition{}
和c語言中的for(;;)相同for{}

除此以外,for循環還可以直接使用range對slice、map、數組以及字符串等進行迭代循環,格式如下:

for key, value := range oldmap {
	newmap[key] = value
}

2.2 循環控制語句

控制語句詳解
break中斷跳出循環或者switch語句
continue跳過當前循環的剩余語句,然后繼續下一輪循環
goto語句將控制轉移到被標記的語句

1、break

break主要用于循環語句跳出循環,和c語言中的使用方式是相同的。且在多重循環的時候還可以使用label標出想要break的循環。
實例代碼如下:

a := 0
for a<5 {
	fmt.Printf("%d\n", a)
	a++
	if a==2 {
		break;
	}
}
/* output
0
1
2
*/

2、continue

Go 語言的 continue 語句 有點像 break 語句。但是 continue 不是跳出循環,而是跳過當前循環執行下一次循環語句。在多重循環中,可以用標號 label 標出想 continue 的循環。
實例代碼如下:

    // 不使用標記
    fmt.Println("---- continue ---- ")
    for i := 1; i <= 3; i++ {
        fmt.Printf("i: %d\n", i)
            for i2 := 11; i2 <= 13; i2++ {
                fmt.Printf("i2: %d\n", i2)
                continue
            }
    }

/* output
i: 1
i2: 11
i2: 12
i2: 13
i: 2
i2: 11
i2: 12
i2: 13
i: 3
i2: 11
i2: 12
i2: 13
*/

    // 使用標記
    fmt.Println("---- continue label ----")
    re:
        for i := 1; i <= 3; i++ {
            fmt.Printf("i: %d", i)
                for i2 := 11; i2 <= 13; i2++ {
                    fmt.Printf("i2: %d\n", i2)
                    continue re
                }
        }

/* output
i: 1
i2: 11
i: 2
i2: 11
i: 3
i2: 11
*/

3、goto

goto語句主要是無條件轉移到過程中指定的行。goto語句通常和條件語句配合使用,可用來實現條件轉移、構成循環以及跳出循環體等功能。但是并不主張使用goto語句,以免造成程序流程混亂。
示例代碼如下:

var a int = 0
LOOP: for a<5 {
	if a == 2 {
		a = a+1
		goto LOOP
	}
	fmt.Printf("%d\n", a)
	a++
}

/*
output:
0
1
2
3
4
*/

以上代碼中的LOOP就是一個標簽,當運行到goto語句的時候,此時執行流就會跳轉到LOOP標志的哪一行上。

讀到這里,這篇“golang流程控制語句怎么使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

焉耆| 乌拉特中旗| 格尔木市| 阿拉善右旗| 武邑县| 文山县| 新乡市| 天津市| 嘉善县| 平谷区| 齐齐哈尔市| 永嘉县| 溧阳市| 东乡族自治县| 威远县| 平顺县| 盘锦市| 东平县| 湘潭县| 海阳市| 枝江市| 茌平县| 临泉县| 南通市| 北安市| 谷城县| 岱山县| 临泽县| 云梦县| 平谷区| 万宁市| 扎兰屯市| 景东| 通江县| 乌拉特前旗| 伊吾县| 永丰县| 合阳县| 阜新市| 大安市| 临沭县|