Swift で stride() を使って for ループする
Swift でコードを繰り返し実行する(ループする)には、for-in・while・repeat-while 文が使えます。
Swift の基本的な for-in 文の使い方については「Swift の for ループ」でご説明しました。
for-in 文で数値の範囲を指定してループするには、... などの範囲演算子を使います。
例えば、1 ~ 5 までループしたい時は次のような感じでループできます。
for i in 1...5 {
print("i = \(i)")
}
[実行結果]
i = 1
i = 2
i = 3
i = 4
i = 5
この方法では、ループするたびに i が 1 ずつ増えましたが、stride() 関数を使うと、もっとループの制御をすることができます。
stride() 関数の構文は二つあって、ひとつめの stride(from:to:by:) は次のように使えます。
for 変数 in stride(from: スタート値, to: エンド値, by: ステップ量) {
// 反復するコード
}
from のスタート値はループで実行される最初の値です。
to のエンド値の直前までループしますが、エンド値はループに含まれません。
by のステップ量は、ループする際に加算されていく値です。マイナスの値が設定された時はループするたびに値が小さくなっていきます。
from と by の値によりますが、ループしてちょうど値がエンド値になる場合は、エンド値も含んでループしたい時は stride(from:through:by:) を使います。
for 変数 in stride(from: スタート値, through: エンド値, by: ステップ量) {
// 反復するコード
}
エンド値の扱い方以外は stride(from:to:by:) と同じです。
例えば、stride() 関数を使って、0 から 5 未満を 0.5 のステップ量でループしたい時は次のようにできます。
for i in stride(from: 0, to: 5, by: 0.5) {
print("i = \(i)")
}
実行結果は次のようになります。0 から 0.5 ずつ増えながら print 文が 10 回実行されています。
i が 5 になった時は実行されずにループを抜けているのがわかります。
i = 0.0
i = 0.5
i = 1.0
i = 1.5
i = 2.0
i = 2.5
i = 3.0
i = 3.5
i = 4.0
i = 4.5
5 まで含めてループしたい時は to を through に変更します。
for i in stride(from: 0, through: 5, by: 0.5) {
print("i = \(i)")
}
実行結果は次のようになります。i = 5 の時も実行されていますね。
i = 0.0
i = 0.5
i = 1.0
i = 1.5
i = 2.0
i = 2.5
i = 3.0
i = 3.5
i = 4.0
i = 4.5
i = 5.0
以上、Swift で stride() を使って for ループする方法をご説明しました。