iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
Mobile Development

從零開始的8-bit迷宮探險!Swift SpriteKit 遊戲開發實戰系列 第 5

從零開始的8-bit迷宮探險【Level 5】Swift 基礎語法 (三)

今日目標

  • 認識 for-in
  • 認識 if-else
  • 認識 switch
  • 認識 function

for-in

  • for-in 的使用方式如下:
    1...3 代表的是從 1 到 3的整數範圍,迴圈內的程式會執行 3 次
    item 代表每次的值,可以自己定義名稱
for item in 1...3 {
    print(item)
}
印出結果:
1
2
3
  • 若是希望不包含 3,則可以使用 1..<3
for item in 1..<3 {
    print(item)
}
印出結果:
1
2
  • 若不需要取得值,則可以使用 _
for _ in 1..<3 {
    print("hello")
}
印出結果:
hello
hello
  • 可以搭配 where 使用,加上想要的條件,讓程式更簡潔
    例如:印出 1 到 10 中的偶數
for item in 1...10 where item%2 == 0 {
    print(item)
}
印出結果:
2
4
6
8
10
  • for-in 也可以用在集合型別 (Array、Dictionary、Set) 上,先前已經有做過介紹,這邊就不再詳述

if-else

  • if-else 可以依照給定的條件,判斷是否符合,並執行不同的程式
    swift 的 if-else 省略了一般常見的 ()
    例如:判斷一個陣列是否為空,分別印出不同的語句
if ["hiking", "ski", "diving"].isEmpty {
    print("Empty")
} else {
    print("Colorful life!")
}
印出結果:
Colorful life!
  • 若是有多種條件,可以使用 else if
let number = 75
if number < 60 {
    print("fail")
} else if number >= 60 && number < 85 {
    print("good")
} else {
    print("excellent")
}
印出結果:
good

switch

  • switch 可以讓我們依照不同條件,執行不同的程式
    在 swift 中,switch 較特別的地方在於可以省略 break,只要進到某個條件之後,switch 就不會再跑進別的條件中。
let name = "Kevin"
switch name {
case "Yoyo":
    print("female")
case "Kevin":
    print("male")
default:
    print("unknown")
}
印出結果:
male
  • case 可以支援範圍類型
    例如:依照不同數字的範圍,印出不同結果
let number = 75
switch number {
case 0..<60:
    print("fail")
case 60..<85:
    print("good")
default:
    print("excellent")
}
印出結果:
good
  • 可以使用 where 帶入條件類型的 case
    例如:只要有包含 apple,就印出這是我最喜歡的水果。若是包含 pineapple,就印出還不錯。若是都沒有符合的條件,則印出我都不喜歡:
let fruit = ["apple", "orange", "banana"]
switch fruit {
case _ where fruit.contains("apple"):
    print("This is my favorite fruit.")
case _ where fruit.contains("pineapple"):
    print("Not bad.")
default:
    print("I don't like these.")
}
印出結果:
This is my favorite fruit.

function

我們可以自訂方法 (function),來做某項特定的事情。

  • 宣告方法可以使用 func
    • doMath 代表的是方法的名稱
    • num: Int 是可以帶入的參數名稱及其型態
    • { } 內為執行的程式
func doMath(num: Int) {
    print(num * 2)
}
doMath(num: 4)
印出結果:
8
  • 方法的回傳值 ->
    • -> Int 代表此方法回傳的值為整數型態
    • return 後寫上回傳的值
func doMath(num1: Int, num2: Int) -> Int {
    return num1 + num2
}
print(doMath(num1: 4, num2: 3))
印出結果:
7
  • 參數的預設值
    • 例如:num2: Int = 5 ,代表給予參數預設值 5
    • 當呼叫方法時,若沒有帶入此參數,則使用預設值
func doMath(num1: Int, num2: Int = 5) -> Int {
    return num1 + num2
}
print(doMath(num1: 4))
印出結果:
9

今日小結:
今天認識了一些流程控制的方式,以及如何宣告一個方法
明日繼續努力!/images/emoticon/emoticon33.gif


上一篇
從零開始的8-bit迷宮探險【Level 4】Swift 基礎語法 (二)
下一篇
從零開始的8-bit迷宮探險【Level 6】Swift 基礎語法 (四)
系列文
從零開始的8-bit迷宮探險!Swift SpriteKit 遊戲開發實戰30

尚未有邦友留言

立即登入留言