【Swift】for文の使い方(Swift 2.1、XCode 7.2)

2020年6月16日

for文の使い方

for文とは、規則的な処理を繰り返す場合に使われる制御文である。プログラミングの世界では、処理を繰り返すことをループすると表現する。

他言語でも馴染みのあるfor文は以下になる。処理をする度にカウンタの値を確認し、継続条件を満たすあいだループし続ける。

 

以下のコードは、回数を出力するループを5回繰り返すサンプル

 

以下のコードのように、for文の横の括弧は省略できる。しかし、括弧があった方が読みやすいと思う人が多いので省略しないほうが良い。

 

for文の条件文には複数の変数や条件式を定義できる。

以下のコードは2つの変数を定義した例。変数iを1で初期化し、ループごとに値をインクリメントして5になるまでループする。

変数kはtrueで初期化し、変数iが2のときに変数kの値をfalseに変える処理をループ内で行っている。そのため、ループ2回目でkがfalseになることで「ループの継続条件」を満たさなくなり、ループが終了する。

for-in文の使い方

for-in文はデータの集合から値を1つずつ取り出しながらループさせるときに使うが、範囲指定を使えばfor文と同じ処理をさせることができる。

「ループの継続条件」や「ループ1回のカウンタの増減」が複雑にならないのであれば、for文よりもfor-in文を使ったほうが見た目がスッキリしていて使いやすい。

 

以下のコードは、for-in文を使って回数を出力するループを5回繰り返す例。for文よりも見た目がシンプルで、何回ループするのかが直感的に分かりやすい。ループはこの書き方に慣れよう。

 

以下のコードは、配列から要素を1つずつ取り出して出力する。

 

以下のコードは、辞書から要素を1つずつ取り出して出力する例。

辞書はキーと値のセットになっているので、キー用と値用の2つの変数に値を格納する。辞書のkeysプロパティを利用してキーのみのコレクション、valuesプロパティを利用して値のみのコレクションを取得する方法もある。

 

for-in文の後ろにはwhere句をつけることができる。where句の条件を満たす場合は変数に値がセットされてループ内の処理が行われる。where句の条件を満たさない場合は、その要素はスキップされ次の要素に進む。

 

for-in文の注意点について説明する。上記でコレクションから取り出した要素を格納するものを変数と言っているが、この変数の値はfor文の中で変更するこはできない。ループごとに値は書き換わるが、定数として扱われるのだ。

 

ループを抜けたあとに要素を代入した変数を参照することは出来ない。ループ内だけで参照できる変数である。