続いて、繰り返しです。繰り返しにもいくつかの構文が用意されています。もっともよく使われるのは「
for」というものでしょう。これは2通りの働きが用意されています。それぞれまとめておきましょう。
●for inの基本形for 変数名 in 複数要素を持つ値 {
……繰り返す処理……
}
これは、配列や
rangeのように複数の値をまとめて扱うものを利用した繰り返しです。
forの後に変数名を用意し、
inの後に配列や
rangeの値を記述します。その後の
{}内に繰り返す処理を用意します。
forは、
inの後の配列などから順に値を取り出しては
forの変数に代入し、処理を実行する、といった作業をすべての要素について繰り返していきます。例えば、1から10まで値を変数に設定して実行するなら、こんな感じになります。
for index in 1..10 {……}
また、「順に取り出す値は別に使わない」という場合には、変数名を
アンダースコアにすることができます。こんな感じですね。
for _ in 1..10
こうすることで、10回繰り返す処理を作成できます。
●forの基本形for 初期化 ; 条件 ; 後処理 {
……繰り返す処理……
}
これは、より細かく繰り返しを設定したいような場合に利用するものです。
forの後には、初期化処理、条件、後処理の3つの要素を用意します。
初期化処理――繰り返しをスタートする前に実行する処理を記述します。
条件――繰り返しを行う度に、この条件をチェックします。trueならば繰り返しを行い、falseならば構文を抜けて次に進みます。
後処理――繰り返し処理を実行後、ここに用意した処理を実行してから次の繰り返しへと進みます。
この
forのほうが、言語の経験があれば馴染み深いでしょう。大抵の場合、初期化で変数を初期化し、後処理でその値を増減させて繰り返しを行わせるような使い方をします。例えばこんな感じです。
for var i = 0;i < 10;i++ {
"index:" + String(i)
}
これで、変数iを初期化し、その値をゼロから10までカウントしながら繰り返しを実行できます。繰り返し内の
String(i)というのは前回触れましたがテキストにキャストする処理です。
これで一応繰り返しの処理が行えます。ただ、これなら
for inで
rangeを使って書いたほうがわかりやすいでしょう。わざわざこの
forを使う利点はあまり感じられないかもしれませんね。
こちらの
forは、後処理と条件を自由に設定できるところに利点があります。例えば、「変数を2ずつ増やしていく」といったことも簡単にできます。単純に1ずつ値を増やしていくなら
for inでいいが、もうちょっと凝ったことをさせたい場合はこちらの
forが便利でしょう。