讓 for 迴圈不只加 1 的 stride

Swift 深藏不露,惦惦呷三碗公,大家都以為她只會每次加 1。其實她數學好得很,每次加 100 都難不到它,甚至要她加浮點數或加負數都不是問題 !

例1: 從 0, 100, 200,一直加到 900。(每次加 100,不包含 1000)

var sum = 0
for i in stride(from: 0, to: 1000, by: 100) {
sum = sum + i
}

利用 stride function 決定 for in 語法的數字範圍,以下為參數的說明:
from: 開始的數字
to: 結束的數字 (不過很可憐地,它被排除在外,所以最後只加 到900,不包含 1000)
by: 每次相加的數字

public func stride<T>(from start: T, to end: T, by stride: T.Stride) -> StrideTo<T> where T : Strideable

例2: 從 0, 100, 200,一直加到 1000。(每次加 100,包含 1000)

var sum = 0
for i in stride(from: 0, through: 1000, by: 100) {
sum = sum + i
}

跟剛剛的例子幾乎長得一樣,只是參數從 to 變成 through。比 to 幸運,through 的數字將被包含。

public func stride<T>(from start: T, through end: T, by stride: T.Stride) -> StrideThrough<T> where T : Strideable

例3: 從 0, 0.3, 0.6,一直加到 0.9。(每次加 0.3)

var sum = 0.0
for i in stride(from: 0, to: 1, by: 0.3) {
sum = sum + i
}

當 by 參數為 0.3 時,i 將每次加 0.3。

例4: 從 1000, 900, 800,一直加到 100。(每次少 100(加 -100))

var sum = 0
for i in stride(from: 1000, to: 0, by: -100) {
sum = sum + i
}

當 by 參數為負數時,即可由大加到小。比方以上例子,利用 by 參數 -100,即可讓 i 每次少 100,由 1000, 900 加到 100。

文章內容為彼得潘的 Swift 程式設計入門新增章節 ,23–7 讓 for 迴圈不只加 1 的 stride。

--

--

彼得潘的 iOS App Neverland
彼得潘的 Swift iOS App 開發問題解答集

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com