天天看點

Go語言循環語句

程式包括三大結構:順序結構、選擇結構(條件語句控制)、循環結構(循環語句控制)。

循環語句用于重複執行某些程式中的語句。

程式設計語言中常見的循環語句包括

while

語句、

do-while

語句和

for

語句。但是Go語言中僅有

for

語言,沒有

while

語句。從功能上講,但凡

while

語句能做的事情,

for

語句也可以實作。是以Go語言統一了

for

語句和

while

語句詳情見下。

for語句

Go語言的for語句一共有三種:

第一種:
for init; condition; post {
	...	
}           

複制

  • init

    一般為指派表達式,用于循環控制變量及其他變量初始化。

  • condition

    關系表達式和邏輯表達式,用于訓示循環控制條件。

  • post

    一般為指派表達式,用于增減循環控制變量

以上三點等價于其他程式設計語言的for語句,是以第一種寫法等價于其他語言的

for

語句。

第二種:
for condition {
	...
}           

複制

第二種寫法等價于其他語言的

while

語句。因為Go的for語句使不寫括号的,是以删掉

init

post

就完全等價于了while語句。是以Go沒有引入while這個關鍵字,直接使用for語句實作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循環的range格式可以疊代slice、map、數組、字元串等類型,格式如下:

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, "位置上的數值為", e)
	}
}

// 索引 0 位置上的數值為 1
// 索引 1 位置上的數值為 2
// 索引 2 位置上的數值為 3
// 索引 3 位置上的數值為 4
// 索引 4 位置上的數值為 5           

複制

同Python,Go語言也使用下劃線

_

來接住不需要的傳回值。

for _,e := range nums {
	...
}           

複制