Go - 迴圈:精通編程中的重複

Hello, 有志的程式設計師們!今天,我們將深入編程中最基礎的概念之一:迴圈。作為你們親切的小區計算機科學老師,我很興奮能夠引導你們進入 Go 迴圈的迷人世界。相信我,到了這個教學的結尾,你們將會像專家一樣進行迴圈!

Go - Loops

迴圈是什麼?

在我們深入細節之前,讓我們先了解什麼是迴圈。想像一下,你被指派寫 "我愛編程" 這句話100次。很無聊,對吧?這就是迴圈派上用場的地方!它們讓我們能夠在不重複寫同一段代碼的情況下,重複執行一組指令多次。

Go 語言中的迴圈類型

Go 提供了三種主要的迴圈類型:

  1. For 迴圈
  2. While 迴圈(使用 for 實現)
  3. 基於範圍的 for 迴圈

讓我們詳細探討這些類型。

1.經典的 For 迴圈

For 迴圈是 Go 語言中最常見的迴圈類型。它就像瑞士軍刀一樣的迴圈——多用途且強大。

package main

import "fmt"

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

在這個例子中:

  • i := 0 初始化迴圈變量
  • i < 5 是在每次迭代前檢查的條件
  • i++ 在每次迭代後執行

輸出:

迭代: 0
迭代: 1
迭代: 2
迭代: 3
迭代: 4

2. While 迴圈(Go 風格)

Go 沒有 while 關鍵字,但我們可以使用 for 迴圈達到相同的效果。這就像穿著燕尾服的 T 恤——正式上是 for 迴圈,但功能上是 while 迴圈!

package main

import "fmt"

func main() {
count := 0
for count < 3 {
fmt.Println("計數為:", count)
count++
}
}

在這裡,當 count < 3 為真時,迴圈會繼續執行。

輸出:

計數為: 0
計數為: 1
計數為: 2

3. 基於範圍的 For 迴圈

這是我個人的最愛——就像為你的數據結構裝上 GPS。它對於遍歷數組、切片、映射等非常適合。

package main

import "fmt"

func main() {
fruits := []string{"蘋果", "香蕉", "櫻桃"}
for index, fruit := range fruits {
fmt.Printf("索引 %d 的水果是 %s\n", index, fruit)
}
}

這個迴圈會自動遍歷 fruits 切片,在每次迭代中給我們索引和值。

輸出:

索引 0 的水果是 蘋果
索引 1 的水果是 香蕉
索引 2 的水果是 櫻桃

迴圈控制語句

現在我們已經掌握了基礎知識,讓我們為我們的迴圈添加一些調味料——控制語句。這些就像編程世界的 DJ 一樣——它們控制著我們迴圈派對的流程!

Break 語句

break 語句就像按下緊急停止按鈕。它會立即終止迴圈。

package main

import "fmt"

func main() {
for i := 0; i < 10; i++ {
if i == 5 {
fmt.Println("我們到達了 5!該結束了!")
break
}
fmt.Println("當前數字:", i)
}
}

這個迴圈會在 i 到達 5 時停止。

輸出:

當前數字: 0
當前數字: 1
當前數字: 2
當前數字: 3
當前數字: 4
我們到達了 5!該結束了!

Continue 語句

continue 語句就像跳過你不喜歡的歌曲。它會跳到迴圈的下一個迭代。

package main

import "fmt"

func main() {
for i := 0; i < 5; i++ {
if i == 2 {
fmt.Println("跳過 2!")
continue
}
fmt.Println("當前數字:", i)
}
}

這個迴圈會在 i 為 2 時跳過打印。

輸出:

當前數字: 0
當前數字: 1
跳過 2!
當前數字: 3
當前數字: 4

無窮迴圈

最後但同樣重要的是,讓我們來谈谈臭名昭著的無窮迴圈。這就像那首永遠結束不了的歌——它會一直播放,除非你告訴它停止。

package main

import (
"fmt"
"time"
)

func main() {
count := 0
for {
fmt.Println("這是迭代:", count)
count++
time.Sleep(time.Second)
if count == 5 {
fmt.Println("好吧,夠了!")
break
}
}
}

這個迴圈會永遠運行,除非我們跳出它。在這個例子中,我們在 5 次迭代後跳出。

輸出:

這是迭代: 0
這是迭代: 1
這是迭代: 2
這是迭代: 3
這是迭代: 4
好吧,夠了!

迴圈方法表

這裡是一個我們已經介紹過的迴圈方法的便捷表格:

方法 描述 示例
For 迴圈 標準的迴圈,有初始化、條件和後置語句 for i := 0; i < 5; i++ { ... }
While-style For 迴圈 當條件為真時運行的迴圈 for count < 3 { ... }
基於範圍的 For 迴圈 遍歷數組、切片、映射等的迴圈 for index, value := range collection { ... }
無窮迴圈 沒有終止條件的迴圈 for { ... }

那就這樣吧,各位!你們已經踏出了進入 Go 編程迴圈世界的第一步。記住,熟練是練習出來的,所以不要害怕嘗試這些概念。快樂編程,願你的迴圈總是在你想要時終止!

Credits: Image by storyset