ループとイテレータ

ここでは Swift でのループについてみていきましょう。

ループを扱うにあたり、配列、ディクショナリといったコレクションについては、あらかじめ知っておいたほうが良いので、まだの人はみておいてください。

» コレクション

尚、以下の例では println で標準出力にプリントしていますが、Xcode の Playground で試すときは、アシスタントエディタを表示しておくと、コンソールの出力が見られるので便利です。

while, do-while ループ

while ループは while で指定した条件が真のときに、{ } ブロック内の処理を繰り返します。

var i = 0
while i < 10 {
	print( "\(i)" )
	i += 1
}

実行結果:

0
1
2
3
4
5
6
7
8
9

初期の Swift ではインクリメントに i++ という書き方がありましたが、現在はなくなりました。

do-while ループは、{ } ブロック内の処理を実行してから while の条件を評価して、真ならば処理を繰り返します。

var i = 0

repeat {
	print( "\(i)" )
	i += 1
} while i < 10

実行結果は上と同様です。

初期の Swift では do-while という書き方がありましたが、現在は repeat-while です。

for-in ループ

for-in ループではコレクションの要素を取り出しながら、繰り返し処理を行ないます。

var states = [ "CA", "HI", "TX" ]

for state in states {
	print( state )
}

実行結果:

CA
HI
TX

配列のインデックスを取得する場合は、enumerated() 関数とタプルを利用して、次のようにします。

var states = [ "CA", "HI", "TX" ]

for (index, name) in states.enumerated() {
	print( "\(index) = \(name)" )
}

実行結果:

0 = CA
1 = HI
2 = TX

以前は enumerate(< 配列 >) 関数が使えましたが、今は 配列.enumerated() です。

ディクショナリと for-in ループで次のようにキー・バリューペアが取得できます。

var addr = [
	"state" : "California",
	"city"  : "Los Angeles",
]

for ( key, val ) in addr {
	print( "key = \(key), val = \(val)" )
}

実行結果

key = state, val = California
key = city, val = Los Angeles

カウンタの省略

最後に Swift らしい感じの使い方をひとつ紹介します。

for-in ループで、3 回ループさせる場合、次のように 3 ドット (...) を使って次のようにかけます。

for i in 1...3 {
	print ( "Hello! \(i)" )
}

ループの中で i を使わないなら、アンダースコア (_) を使って省略します。

for _ in 1...3 {
	print ( "Hello!" )
}

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Swift による iOS 開発入門