DEV Community

Too Leng
Too Leng

Posted on

【ChaoCode】 Swift 基礎篇 5:布林 & 條件運算子作業

Bool 這個類型是什麼

Bool 是最基本的邏輯型別,用於控制流程,例如 if 判斷語句、while 迴圈等。
Bool 的變數命名方法
condition ? valueIfTrue : valueIfFalse

let isLoggedIn: Bool = true
let hasPermission: Bool = false
let canEdit: Bool = true

Enter fullscreen mode Exit fullscreen mode

條件運算子 … ? … : …

let age = 18
let canVote = age >= 18 ? true : false
print(canVote)  // 輸出: true

為什麼 Bool 是一個效能好的類型?

因為它只有兩種可能,所以只需要用到 0 跟 1 來跟電腦溝通,也就是只需要 1 bit 的空間。
Bool 的值有哪些?
true 和 false
Bool 的變數名稱應該怎麼命名?
搭配 is, has, should, will 這種能反應出「只有兩個答案」的問句來命名。

// 【ChaoCode】 Swift 基礎篇 5:Bool 和條件運算子實作作業

// ⚠️ 注意這次的寫法比較不同,你只要編輯👇符號下面的內容即可,編輯範圍到 print 那行(包含 print),這之間你可以任意新增行數,如果還是不確定可以看影片結尾有解釋。
// 這個寫法是為了讓你能比較輕鬆測試不同結果,我把你的 code 包進 function 裡面。現在看不懂沒關係,function 是我們這系列之後會學到的內容。

// 1. 根據不同體重和身高印出不同訊息。

func 體重檢測(weight: Double, height: Double) {
    print("🌼 體重:\(weight) 公斤,身高 \(height * 100) 公分")
    // 👇 體重低於 50 時印出「不能捐血」;50 或 50 以上印出可以捐血。
    // 👇 體重低於 50 時印出「不能捐血」;50 或 50 以上印出可以捐血。
    print(weight.isLess(than: 50) ? "不能捐血" : "可以捐血")

    // 👇 計算出 BMI: 體重 / (身高 * 身高)
    let bmi = weight / (height * height)
    print("你的 BMI 是:\(bmi)")
    // 👇 BMI 小於等於 18.5 時印出「過瘦體型」;BMI 大於等於 30 時印出「過胖」;其餘印出「正常體型」。
    let isSkinny = bmi.isLessThanOrEqualTo(18.5)
      let isNormal = bmi.isLess(than: 30)
      print(isSkinny ? "過瘦" : isNormal ? "正常" : "過胖", "體型", separator: "")


}

體重檢測(weight: 47.95385, height: 1.61)
體重檢測(weight: 75, height: 1.75)
體重檢測(weight: 130, height: 1.80)


// 2. 因應虎年,商店舉辦了名字裡有虎的客人可以獲得優惠的活動。請根據客人名字印出他能獲得多少優惠。


func 名字優惠活動(name: String) {
    // 👇 請印出正確的折扣資訊。名字裡有虎的人可以打 8 折;名字開頭是虎的人可以打 5 折;其餘沒有折扣。
    let shouldGetDiscount = name.contains("虎")
    let shouldGetHalfDiscount = name.hasPrefix("虎")
    var message = "您這次沒有獲得優惠"
    message = shouldGetDiscount ? "您可以獲得八折優惠" : message
    message = shouldGetHalfDiscount ? "您可以獲得半價優惠" : message
    print("📢 名字是 \(name) 的客人,您可以獲得\(message)")
}


名字優惠活動(name: "小老虎")
名字優惠活動(name: "虎牙妹")
名字優惠活動(name: "小貓咪")


Enter fullscreen mode Exit fullscreen mode

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay