1. 程式人生 > 其它 >5.8.for語句

5.8.for語句

技術標籤:Gogo區塊鏈

這裡將自己學習Go及其區塊鏈的一些筆記、積累分享一下,如果涉及到了文章、文字侵權,請聯絡我刪除或調整。


形式1:for迴圈使一段程式碼被反覆執行,直到條件不再滿足為止

for條件表示式 {
迴圈體
}

如果條件表示式的值為,則執行迴圈體,重複以上過程,直到條件表示式的值為假,退出for迴圈,執行迴圈結構後面的語句

注:僅包含條件的for迴圈,通常會在迴圈體內對條件的變數做修改,因此該變數是一個在for迴圈前宣告的變數,進而保證迴圈可以結束。

1. for迴圈的迴圈體程式碼有可能一次也不執行,如果第一次計算條件表示式的結果就為假

2. 形式2:for

迴圈的條件表示式的計算次數,比迴圈體程式碼塊的執行次數,要多一次這是因為最後一次執行僅執行了條件判斷(為假),不再執行迴圈體。

3. for迴圈還可以指定在迴圈開始之前執行的初始化語句,和在迴圈體執行之後執行的後續語句,它們分別居於條件表示式的左右兩側,並以分號隔開

for初始化語句; 條件表示式; 後續語句 {
迴圈體
}

首先執行初始化語句,然後判斷條件表示式的值是否為真,若為則執行迴圈體,迴圈體執行完以後,先執行後續語句,再重複判斷條件表示式的值是否為真,以決定是否還要繼續迴圈或退出

4. 由初始化語句所開啟的作用域,比迴圈體作用域要大,但比for迴圈所在的作用域要小在離開for迴圈後,初始化語句中的變數宣告週期結束。

// for 初始化語句; 條件表示式; 後續語句 { 
//     迴圈體
// } 
// 
// 先執行初始化語句,當條件滿足時執行迴圈體,執行後續語句,再次判斷
// 條件,若滿足則執行迴圈體和後續語句,如此反覆,直到條件不滿足為止
package main

import "fmt"

func main() {
for i := 0; i < 10; i++ {
fmt.Println("i is", i)
}
}

5. 形式3:for迴圈也可以用於遍歷資料結構。藉助於range語句,可在不知道資料結構長度的條件下,依次遍歷其中的每個元素

for迭代索引,

迭代變數 := range資料結構 {// 將其初始化為由range關鍵字所引導的資料結構中的元素
迴圈體
}

在迴圈的過程中,依次獲取資料結構中的每個元素,用迭代索引標識其下標,用迭代變數儲存其值,每迭代出一個元素,即執行一次迴圈體,直到將資料結構中的元素全部遍歷完為止

// for 索引, 元素 := range 集合 { 
//     迴圈體
// } 
// 
// 遍歷集合中的每一個元素,每遍歷一個元素,執行一遍迴圈體
package main

import "fmt"

func main() {
numbers := []int{2, 3, 5, 7, 11, 13, 17, 19, 21, 23}// 整型切片

for i, number := range numbers {
fmt.Printf("[%v] %v\n", i, number)
}
}
//結果[0] 2
      [1] 3
      [2] 5
      [3] 7
      [4] 11
      [5] 13
      [6] 17
      [7] 19
      [8] 21
      [9] 23