go語言中沒有while關鍵字,不支持while和do-while循環(huán)結構。從功能上講,但凡while語句能做的事情,for語句也可以實現(xiàn),因此Go語言統(tǒng)一了for語句和while語句。且Go的開發(fā)團隊有比較嚴重的潔癖,while并不是一個必要選項,提供多種方式讓開發(fā)者選擇,容易讓開發(fā)者迷路,產(chǎn)生選擇困難;所以干脆不給選擇的機會,強制讓大家統(tǒng)一風格。
本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。
go語言中沒有while關鍵字,,不支持while和do-while循環(huán)結構。
循環(huán)語句用于重復執(zhí)行某些程序中的語句。
編程語言中常見的循環(huán)語句包括while語句、do-while語句和for語句。但是Go語言中僅有for語言,沒有while語句。從功能上講,但凡while語句能做的事情,for語句也可以實現(xiàn)。因此Go語言統(tǒng)一了for語句和while語句。
且Go的開發(fā)團隊有比較嚴重的潔癖,while 并不是一個必要選項,提供多種方式讓開發(fā)者選擇,容易讓開發(fā)者迷路,產(chǎn)生選擇困難;所以干脆不給選擇的機會,強制讓大家統(tǒng)一風格。
for語句
Go語言的for語句一共有三種:
第一種:
for init; condition; post { ... }
登錄后復制
- init 一般為賦值表達式,用于循環(huán)控制變量及其他變量初始化。
- condition 關系表達式和邏輯表達式,用于指示循環(huán)控制條件。
- post 一般為賦值表達式,用于增減循環(huán)控制變量
以上三點等價于其他編程語言的for語句,因此第一種寫法等價于其他語言的for
語句。
第二種:
for condition { ... }
登錄后復制
第二種寫法等價于其他語言的while
語句。因為Go的for語句使不寫括號的,因此刪掉init
和post
就完全等價于了while語句。因此Go沒有引入while這個關鍵字,直接使用for語句實現(xiàn)while語句。
第三種:
for { ... }
登錄后復制
第三種寫法等價于其他語言的for(;;)
,也等價于while(true)
。
實例:
package main import "fmt" func main() { res := 1 n := 10 for i:=1; i<=n; i++ { res *= i } fmt.Println(n,"的階乘是",res) } // 10 的階乘是 3628800
登錄后復制
for-each range
Go語言中for循環(huán)的range格式可以迭代slice、map、數(shù)組、字符串等類型,格式如下:
for k, v := range oldMap { newMap[k] = v }
登錄后復制
實例:
package main import "fmt" func main() { nums := [5]int{1, 2, 3, 4, 5} for i,e := range nums { fmt.Println("索引", i, "位置上的數(shù)值為", e) } } // 索引 0 位置上的數(shù)值為 1 // 索引 1 位置上的數(shù)值為 2 // 索引 2 位置上的數(shù)值為 3 // 索引 3 位置上的數(shù)值為 4 // 索引 4 位置上的數(shù)值為 5
登錄后復制
同Python,Go語言也使用下劃線_
來接住不需要的返回值。
for _,e := range nums { ... }
登錄后復制
【