選單
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Go For 迴圈


for 迴圈會迴圈執行一段程式碼指定的次數。

Go 語言中唯一的迴圈語句是 for 迴圈。


Go For 迴圈

如果您想反覆執行相同的程式碼,每次使用不同的值,迴圈會非常方便。

迴圈的每次執行稱為一次迭代

for 迴圈最多可以包含三個語句

語法

for 語句1; 語句2; 語句3 {
  // 每次迭代要執行的程式碼
}

語句1 初始化迴圈計數器的值。

語句2 對每次迴圈迭代進行求值。如果求值為 TRUE,則迴圈繼續。如果求值為 FALSE,則迴圈結束。

語句3 增加迴圈計數器的值。

注意: 這些語句不必作為迴圈的引數出現。但是,它們必須以某種形式出現在程式碼中。


for 迴圈示例

示例 1

此示例將列印數字 0 到 4:  

package main
import ("fmt")

func main() {
  for i:=0; i < 5; i++ {
    fmt.Println(i)
  }
}

結果

0
1
2
3
4
自己動手試一試 »

示例 1 解釋

  • i:=0; - 初始化迴圈計數器 (i),並將起始值設定為 0
  • i < 5; - 只要 i 小於 5,迴圈就繼續
  • i++ - 每次迭代將迴圈計數器值增加 1

示例 2

此示例以 10 為步長計數到 100: 

package main
import ("fmt")

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

結果

0
10
20
30
40
50
60
70
80
90
100
自己動手試一試 »

示例 2 解釋

  • i:=0; - 初始化迴圈計數器 (i),並將起始值設定為 0
  • i <= 100; - 只要 i 小於或等於 100,迴圈就繼續
  • i+=10 - 每次迭代將迴圈計數器值增加 10


continue 語句

continue 語句用於跳過迴圈中的一個或多個迭代。然後繼續進行迴圈中的下一次迭代。

示例

此示例跳過值 3

package main
import ("fmt")

func main() {
  for i:=0; i < 5; i++ {
    if i == 3 {
      continue
    }
   fmt.Println(i)
  }
}

結果

0
1
2
4
自己動手試一試 »

break 語句

break 語句用於中斷/終止迴圈執行。

示例

此示例在 i 等於 3 時中斷迴圈

package main
import ("fmt")

func main() {
  for i:=0; i < 5; i++ {
    if i == 3 {
      break
    }
   fmt.Println(i)
  }
}

結果

0
1
2
自己動手試一試 »

注意: continuebreak 通常與條件一起使用。


巢狀迴圈

可以在一個迴圈內放置另一個迴圈。

在這裡,“內迴圈”將在“外迴圈”的每次迭代中執行一次

示例

package main
import ("fmt")

func main() {
  adj := [2]string{"big", "tasty"}
  fruits := [3]string{"apple", "orange", "banana"}
  for i:=0; i < len(adj); i++ {
    for j:=0; j < len(fruits); j++ {
      fmt.Println(adj[i],fruits[j])
    }
  }
}

結果

big apple
big orange
big banana
tasty apple
tasty orange
tasty banana
自己動手試一試 »

Range 關鍵字

range 關鍵字用於更方便地遍歷陣列、切片或對映的元素。它返回索引和值。

range 關鍵字的使用方式如下

語法

for 索引, 值 := range 陣列|切片|對映 {
  // 每次迭代要執行的程式碼
}

示例

此示例使用 range 遍歷陣列並列印每個元素的索引和值(idx 儲存索引,val 儲存值)

package main
import ("fmt")

func main() {
  fruits := [3]string{"apple", "orange", "banana"}
  for idx, val := range fruits {
     fmt.Printf("%v\t%v\n", idx, val)
  }
}

結果

0      apple
1      orange
2      banana
自己動手試一試 »

提示: 要僅顯示值或索引,可以使用下劃線 (_) 忽略另一個輸出。

示例

在這裡,我們想忽略索引(idx 儲存索引,val 儲存值)

package main
import ("fmt")

func main() {
  fruits := [3]string{"apple", "orange", "banana"}
  for _, val := range fruits {
     fmt.Printf("%v\n", val)
  }
}

結果

apple
orange
banana
自己動手試一試 »

示例

在這裡,我們想忽略值(idx 儲存索引,val 儲存值)

package main
import ("fmt")

func main() {
  fruits := [3]string{"apple", "orange", "banana"}

  for idx, _ := range fruits {
     fmt.Printf("%v\n", idx)
  }
}

結果

0
1
2
自己動手試一試 »

Go 練習

透過練習來測試自己

練習

只要 i 小於 6,就列印 i。

package main   
import ("fmt") 
func main() { i:=0; i < 6; { fmt.Println(i) } }

開始練習


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援