[Swift]for-in文のさまざまな使い方【基本/終点も含んで繰り返す/ループのたびにi += n回ずつ増やす】
Swiftにおけるfor文ことfor-in文は他の言語と比較して少し特殊な構文をしています。
例えば下記のようなケースにおいて、
javaであれば
for(int i = 0; i < array.length; i++){
}
と記述するところをSwiftでは
for(i in 0 ..< array.count){
}
と記述したりします。
javaは基本構文のパラメータを若干変えるだけで幅広いケースに対応できるのですが、Swiftは一筋縄ではいきません。今回はSwiftにおけるforループのtipsみたいなのを紹介しようと思います。
基本
//i 〜 arrayの要素分だけ繰り返す
for(i in 0 ..< array.count){
}
終点も含んで繰り返す
稀に、要素数を変えることをせずに、検索を開始するインデックスを1からforループを回したいと思うことがあります。
// ..< ではなく ...と記述する
for(i in 1 ... array.count){
}
..< ではなく …と記述することで、終点(終値)を含んで検索することができます。注意しないといけないのは「0 … array.count」とか「 1 ..< array.count」とか「1 … array.count+1」と記述しないようにしましょう。要素数が違うので「Index Out Of Range」エラーに苦しめられることになります。
ループのたびにi += n回ずつ増やす
javaだと
for(int i = 0; i < array.length; i++){
}
と記述しますが、この「i++」を変えることで例えば「i+=2」で2ずつ増やすことができます。
あまり知られていませんが、これ。Swiftでも実現できます。
for i in stride(from:0, to:array.count, by:2) {
//0〜array.countまで2ずつ要素を増やす
}
stride(from: to: by:)構文を使うことで、表現をすることができます。
この記事が気に入ったらサポートをしてみませんか?