Go - 選擇結構

Go中的選擇結構介紹

你好,未來的Go語言程式設計師!今天,我們將深入編程中最為關鍵的方面之一:選擇結構。正如真實生活中一樣,我們的程式需要根據特定條件來做出選擇。在Go語言中,我們有許多工具可以實現這些選擇。讓我們一起踏上這個令人興奮的旅程!

Go - Decision Making

如果語句:選擇結構的基本積木

語法和結構

if語句是Go語言中選擇結構的基礎。它允許我們僅當某個條件為真時執行一段代碼。這裡是基本結構:

if 條件 {
// 如果條件為真的代碼
}

讓我們看一個簡單的例子:

package main

import "fmt"

func main() {
age := 18

if age >= 18 {
fmt.Println("你符合投票資格!")
}
}

在這個例子中,我們正在檢查age是否大於或等於18。如果是,我們打印一條消息。運行這段代碼,你會看到消息,因為18確實大於或等於18!

添加else語句

如果我們想在條件為假時做些什麼呢?這就是else語句的用處:

package main

import "fmt"

func main() {
age := 16

if age >= 18 {
fmt.Println("你符合投票資格!")
} else {
fmt.Println("對不起,你年紀太小無法投票。")
}
}

現在,由於age是16,小於18,所以程序會打印else語句中的消息。

if-else if-else鏈

有時,我們需要檢查多個條件。我們可以這樣鏈接if-else語句:

package main

import "fmt"

func main() {
score := 75

if score >= 90 {
fmt.Println("A等")
} else if score >= 80 {
fmt.Println("B等")
} else if score >= 70 {
fmt.Println("C等")
} else {
fmt.Println("需要改進")
}
}

這個程序檢查score並打印對應的等級。由於分數為75,它會打印"C等"。

選擇語句:多路決策者

當你有多個條件要檢查,特別是當它們都在檢查同一個變量時,switch語句可以讓你的代碼更清晰、更高效。

基本switch語法

package main

import "fmt"

func main() {
day := "Monday"

switch day {
case "Monday":
fmt.Println("這是工作周的开始!")
case "Friday":
fmt.Println("TGIF!")
default:
fmt.Println("這是一個普通的日子。")
}
}

在這個例子中,我們檢查day的值並執行對應的case。如果沒有其他case匹配,則執行default語句。

switch的多個case

你也可以將多個case組合在一起:

package main

import "fmt"

func main() {
day := "Saturday"

switch day {
case "Monday", "Tuesday", "Wednesday", "Thursday", "Friday":
fmt.Println("這是工作日。")
case "Saturday", "Sunday":
fmt.Println("這是週末!")
default:
fmt.Println("無效的日子。")
}
}

這段代碼會打印"這是週末!"因為Saturday是週末的日子之一。

無表達式的switch

Go語言允許你使用沒有表達式的switch,這可以用作長的if-else鏈的替代:

package main

import "fmt"

func main() {
score := 85

switch {
case score >= 90:
fmt.Println("A等")
case score >= 80:
fmt.Println("B等")
case score >= 70:
fmt.Println("C等")
default:
fmt.Println("需要改進")
}
}

這會打印"B等",因為85大於或等於80。

條件運算符

為了使我們的條件更強大,我們使用條件運算符。以下是最常見的一些:

運算符 描述 示例
== 等於 a == b
!= 不等於 a != b
< 小於 a < b
> 大於 a > b
<= 小於或等於 a <= b
>= 大於或等於 a >= b
&& 邏輯與 a && b
|| 邏輯或 a || b
! 邏輯非 !a

讓我們看看這些運算符的使用:

package main

import "fmt"

func main() {
age := 25
hasLicense := true

if age >= 18 && hasLicense {
fmt.Println("你可以開車!")
} else if age >= 18 && !hasLicense {
fmt.Println("你年紀足夠,但你需要一個駕駛執照。")
} else {
fmt.Println("你年紀太小無法開車。")
}
}

這個程序檢查age以及個人是否有駕駛執照,以確定是否能開車。

結論

選擇結構是編程的基本概念,Go語言為我們提供了實現它的強大工具。記住,實踐使人完美!嘗試使用ifswitch和不同的條件運算符創建有自己特色的程序。

隨著你繼續在Go語言中的旅程,你會發現自己經常使用這些結構。它們是你程序邏輯的積木,幫助你的代碼根據不同的條件做出聰明的決策。

持續編程,持續學習,最重要的是,在Go語言中玩得開心!

Credits: Image by storyset