Go 語(yǔ)言(Golang)支持多種循環(huán)語(yǔ)句,其中最常見(jiàn)的包括 for
循環(huán)和 range
循環(huán)。這些循環(huán)結(jié)構(gòu)允許你重復(fù)執(zhí)行一段代碼直到滿足特定的條件。
Go 語(yǔ)言的 for
循環(huán)非常靈活,它不僅僅可以像 C 或 Java 那樣使用傳統(tǒng)的三部分結(jié)構(gòu)(初始化語(yǔ)句、條件表達(dá)式、迭代語(yǔ)句),還可以僅使用條件表達(dá)式,或者完全省略條件表達(dá)式(即無(wú)限循環(huán)),甚至可以只使用迭代語(yǔ)句。
傳統(tǒng)三部分結(jié)構(gòu):
for 初始化語(yǔ)句; 條件表達(dá)式; 迭代語(yǔ)句 {
// 循環(huán)體
}
僅條件表達(dá)式:
for 條件表達(dá)式 {
// 循環(huán)體
}
僅迭代語(yǔ)句(無(wú)限循環(huán),需要手動(dòng)控制退出):
for {
// 循環(huán)體
// 根據(jù)條件使用 break 退出循環(huán)
}
僅迭代語(yǔ)句的另一種形式(類似 while):
條件表達(dá)式
for {
if !條件表達(dá)式 {
break
}
// 循環(huán)體
}
range
循環(huán)用于遍歷數(shù)組(array)、切片(slice)、字符串(string)、映射(map)或通道(channel)的元素。對(duì)于數(shù)組、切片和字符串,range
會(huì)返回元素的索引和值;對(duì)于映射,它返回鍵和對(duì)應(yīng)的值。
遍歷切片:
slice := []int{1, 2, 3, 4, 5}
for index, value := range slice {
fmt.Println(index, value)
}
遍歷字符串:
str := "hello"
for index, char := range str {
fmt.Println(index, string(char))
}
遍歷映射:
m := map[string]int{"one": 1, "two": 2, "three": 3}
for key, value := range m {
fmt.Println(key, value)
}
注意: 在遍歷映射時(shí),返回的鍵和值的順序是不確定的,因?yàn)橛成浔旧聿⒉槐WC順序。
Go 語(yǔ)言的循環(huán)結(jié)構(gòu)非常靈活且強(qiáng)大,可以通過(guò)多種方式實(shí)現(xiàn)循環(huán)邏輯,以滿足不同的編程需求。
下一篇: Golang 語(yǔ)言函數(shù)