対象:
Swift3

For文(Swift)

SwiftにはFor-In文も用意されており、Ruby等に慣れた開発者にとっては非常に使いやすい。以下は1~10まで繰り返すFor-In文の例である。閉範囲演算子(Closed Range Operator)(...)により1~10という範囲(10も含む)を表すことができる。

        for i in 1...10 {
            print("For loop i = \(i)")
        }

Swift 3.0でCスタイルのFor文は削除されてしまったので、iをある値から減らしていきたい場合、範囲をreversedメソッドで反転する。

        // iをディクリメントしたい場合はreversedすれば良い。
        for i in (1...10).reversed() {

範囲演算子には半開範囲演算子(Half-Open Range Operator)(..<)もある。こちらは閉範囲演算子とは異なり、右側の数は含まない範囲となる。配列等の要素数が得られるときに使うと良いだろう。

        var numbers = [1, 2, 3, 5, 8]
        for i in 0..<numbers.count {
            print("For loop numbers[\(i)] = \(numbers[i])")
        }

範囲に直接配列を書くことも可能だ。

        for i in [1, 3, 5, 7] {
            print("For loop i = \(i)")
        }

範囲としてDictionaryを使用する場合、繰返し中にkeyとvalueを同時に得ることができる。尚、Dictionaryを使用する場合、key-valueペアの順序は保証されないことに注意しなければならない。

        for (name, number) in ["睦月": 1, "如月": 2, "弥生": 3] {
            print("\(name) \(number)月")
        }

繰返し中に制御変数の値を必要としない場合、ワイルドカード(_)を使って無視することもできる。

        var n = 1
        for _ in 1...10 {
            n *= 2
        }
        print("n = \(n)")
(2015/01/21)
() Swift 3.0対応。

新着情報
【iOS Objective-C, Swift Tips】アプリアイコンにバッジを表示(Swift)
【iOS Objective-C, Swift Tips】画像の向きを指定して保存する(Swift)
【iOS Objective-C, Swift Tips】UIImagePickerControllerの表示を日本語にする(Swift)

Copyright(C) 2004-2017 モバイル開発系(K) All rights reserved.
[Home]