iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
Mobile Development

Swift iOS 開發新手村:從入門到 AI 聊天室系列 第 9

Day 9|Swift 條件判斷超入門!搞懂 if 和 switch 就靠這一課!

  • 分享至 

  • xImage
  •  

前幾天,我們學會了如何用集合來有效儲存資料。但一個只會儲存資料的程式還不夠「聰明」,它需要學會思考與決策!

今天,我們就要來學習賦予程式智慧的關鍵技巧:條件語句(Conditional Statements)。這將讓我們的程式碼不再只是一條路走到黑,而是在遇到岔路時懂得如何選擇。

我們會認識 Swift 的兩大決策工具:if 適合處理簡單的是非題,而 switch 則是應對複雜多選題的專家。

今日學習重點

  • if 語句:學習 if, else if, else 來處理單純的條件邏輯
  • 安全解包:活用 if let (可選綁定) 來安全地處理 Optional
  • switch 語句:掌握 switch 的基礎用法,應對多重條件判斷
  • switch 進階匹配:探索區間、元組與值綁定等強大的模式匹配技巧

if 條件語句

let temperature = 18

if temperature < 20 {
    print("天氣寒冷")
} else {
    print("出門記得多穿衣服")
}

let score = 85

if score >= 90 {
    print("優秀")
} else if score >= 80 {
    print("良好")
} else {
    print("普通")
}

Optional Binding

安全解包 Optional 值,使用 if let 綁定:

let str = "123"

// 嘗試將字串轉成整數
if let number = Int(str) {
    print("轉換成功: \(number)")  // 成功就解包使用
} else {
    print("無法轉換")             // 失敗就印出錯誤訊息
}

switch 條件語句

let number = 2

// 根據 number 的值,做不同處理
switch number {
case 1:
    print("One")
case 2, 3:
    print("Two or Three")
default:
    print("Other")
}

Swift switch 的兩大安全特性

必須窮盡所有情況 (Exhaustive):Swift 要求 switch 語句必須處理到所有可能的情況。如果你的 case 沒有涵蓋所有可能性,編譯器就會報錯。
這就是為什麼當情況無法一一列舉時,default 關鍵字是必需的,這個特性避免了我們意外遺漏某些情況而導致的 bug。

沒有隱式貫穿 (No Implicit Fallthrough):一旦 switch 語句匹配到一個 case 並執行完它的程式碼後,就會自動跳出,不會繼續執行下一個 case。
這意味著你不需要像在其他語言中那樣,在每個 case 結尾加上 break,這個設計也讓程式碼更安全、更簡潔。

區間比對

let score = 88

// 使用區間語法比對成績等級
switch score {
case 0..<60:         // 小於 60
    print("不及格")
case 60...79:        // 60 到 79(含)
    print("及格")
case 80...100:       // 80 到 100(含)
    print("優秀")
default:
    print("無效分數")
}

元組比對 + 值綁定

let point = (3, 0)

// 根據座標位置給出不同的訊息
switch point {
case (0, 0):
    print("Origin")
case (let x, 0): 
    print("X-axis: \(x)")  // 在 X 軸上
case (0, let y):
    print("Y-axis: \(y)")  // 在 Y 軸上
default:
    print("Other")
}

小結一下

今天我們掌握了賦予程式「決策能力」的兩大利器:ifswitch!你學會了使用 ifelse ifelse 來處理線性的條件邏輯,並透過 if let 安全地解包 Optional。

更重要的是,我們深入探索了 switch 強大的模式匹配功能,從基礎的多重條件,到靈活的區間比對、元組比對與值綁定。學會根據情境選擇合適的條件語句,讓你的程式邏輯更清晰、也更強大!

🌟 明日預告

我們學會了讓程式做「判斷」,但如何讓它做「重複」的苦力活呢?如果要印出 100 次 "Hello",難道要複製貼上 100 次嗎?

當然不用!明天,我們就要來學習程式自動化的核心:迴圈(Loops)。你將認識 Swift 的三員大將:最常用來遍歷集合的 for-in、先判斷後執行的 while,以及保證至少執行一次的 repeat-while。學會它們,你就能把所有重複繁瑣的任務,都交給程式去搞定!

敬請期待《Day 10|Swift 重複執行:搞懂 for、while、repeat》


上一篇
Day 8|Swift 鍵值配對必學!Dictionary 用法一次掌握
系列文
Swift iOS 開發新手村:從入門到 AI 聊天室9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言