The Ultimate (FOR - LOOP) Swift
1. Standard (For - In Loop)
Such as items in an array, ranges of numbers, or characters in a string.
this example for - in loop
let items = [1, 2, 3, 4, 6, 7, 14] for item in items { print(item) } print(items) // 1, 2, 3, 4, 6, 7, 14
2. Loop with key (For - In Loop)
same like a standard loop but this loop use key as index
and example :
var items = [1, 3, 10, 4, 6, 7, 14] for (key, num) in items.enumerated() { items[key] = 1 } print(items) //1, 1, 1, 1, 1, 1, 1 //if use outlet collection @IBOutlet var menuMidButtons: [UIButton]!
// from self.menuMidButtons[0].layer.cornerRadius = self.menuMidButtons[0].frame.size.height / 2 self.menuMidButtons[1].layer.cornerRadius = self.menuMidButtons[1].frame.size.height / 2 self.menuMidButtons[2].layer.cornerRadius = self.menuMidButtons[2].frame.size.height / 2 self.menuMidButtons[0].alignTextBelow() self.menuMidButtons[1].alignTextBelow() self.menuMidButtons[2].alignTextBelow()
// less code like this below for (key, _) in menuMidButtons.enumerated() { menuMidButtons[key].layer.cornerRadius = self.menuMidButtons[key].frame.size.height / 2 menuMidButtons[key].alignTextBelow() }
3. Loop over range (For - In Loop)
Here’s that code example with the closed range operator
//ex: 1 for item in 1...5 { print(item) // 1, 2, 3, 4, 5 } //ex: 2 for item in 0..<9 {print(items) // 0, 1, 2, 3, 4, 5, 6, 7, 8 }//ex: 3 let items = [1, 3, 10, 4, 6, 7, 14] for item in 0..<items.count { print(item) // 0, 1, 2, 3, 4, 5, 6 }
4. Loop For Each
This loop same like standard for - in loop, and then check example below:
let items = [1, 2, 3, 4, 6, 7, 14] items.forEach { item in print(item) }
5. Loop with Zip (For - In Loop )
for example, both two array. you can use zip loop
struct IsZipLoop { var isBool: Bool var isItem: Int }
let items = [0, 1, 2, 3, 4, 5, 6] let Bools = [true, false, false, false, false, false, false] var list = [IsZipLoop]() for (item, bool) in zip(items, Bools) { list.append(IsZipLoop(isBool: bool, isItem: item)) }
6. Loop Key and Zip (for In Loop)
this loop use key and zip
import UIKit class ViewController: UIViewController { let items = [1, 2, 3, 4, 6, 7, 14] let bools = [false, false, false, false, false, false, false] override func viewDidLoad() { super.viewDidLoad() for ((offset: key, element: item), bool) in zip(items.enumerated(), bools) { print(key, item, bool) } } } // result print in debug area 0 1 false 1 2 false 2 3 false 3 4 false 4 6 false 5 7 false 6 14 false
For the next post to be while - loop.
No comments: