1. 程式人生 > >Go語言學習五 go的迴圈結構 chan range

Go語言學習五 go的迴圈結構 chan range

Go 語言 for 迴圈

for迴圈是一個迴圈控制結構,可以執行指定次數的迴圈。

語法

Go語言的For迴圈有3中形式,只有其中的一種使用分號。

和 C 語言的 for 一樣:

for init; condition; post { }

和 C 的 while 一樣:

for condition { }

和 C 的 for(;;) 一樣:

for { }
  • init: 一般為賦值表示式,給控制變數賦初值;
  • condition: 關係表示式或邏輯表示式,迴圈控制條件;
  • post: 一般為賦值表示式,給控制變數增量或減量。

for語句執行過程如下:

  • ①先對錶達式1賦初值;
  • ②判別賦值表示式 init 是否滿足給定條件,若其值為真,滿足迴圈條件,則執行迴圈體內語句,然後執行 post,進入第二次迴圈,再判別 condition;否則判斷 condition 的值為假,不滿足條件,就終止for迴圈,執行迴圈體外語句。

for 迴圈的 range 格式可以對 slice、map、陣列、字串等進行迭代迴圈。格式如下:

for key, value := range oldMap {
    newMap[key] = value
}

for語句語法流程如下圖所示:

例項

package main

import "fmt"

func main() {

   var b int = 15
   var a int

   numbers := [6]int{1, 2, 3, 5} 

   /* for 迴圈 */
   for a := 0; a < 10; a++ {
      fmt.Printf("a 的值為: %d\n", a)
   }

   for a < b {
      a++
      fmt.Printf("a 的值為: %d\n", a)
      }

   for i,x:= range numbers {
      fmt.Printf("第 %d 位 x 的值 = %d\n", i,x)
   }   
}

以上例項執行輸出結果為:

a 的值為: 0
a 的值為: 1
a 的值為: 2
a 的值為: 3
a 的值為: 4
a 的值為: 5
a 的值為: 6
a 的值為: 7
a 的值為: 8
a 的值為: 9
a 的值為: 1
a 的值為: 2
a 的值為: 3
a 的值為: 4
a 的值為: 5
a 的值為: 6
a 的值為: 7
a 的值為: 8
a 的值為: 9
a 的值為: 10
a 的值為: 11
a 的值為: 12
a 的值為: 13
a 的值為: 14
a 的值為: 15
第 0 位 x 的值 = 1
第 1 位 x 的值 = 2
第 2 位 x 的值 = 3
第 3 位 x 的值 = 5
第 4 位 x 的值 = 0

第 5 位 x 的值 = 0