Swift Range/Strideの基礎を完全ガイド!初心者でもわかる範囲演算と繰り返し
生徒
「Swiftで数値を繰り返したいときに、for文を使うと思うんですけど、範囲を指定する方法ってあるんですか?」
先生
「はい、SwiftではRangeやStrideを使って、範囲を簡単に表現して繰り返し処理に利用できます。」
生徒
「範囲って具体的にどんなものなんですか?」
先生
「それでは、SwiftのRangeとStrideを基礎から順番に解説していきましょう!」
1. Rangeとは?
Rangeは数値や文字の連続した範囲を表す型です。たとえば「1から5まで」といった範囲を一つのまとまりとして扱えます。これを利用すると、繰り返し処理をシンプルに書けます。
Swiftでは「閉区間」と「半開区間」という2種類の範囲指定ができます。
- 閉区間(...):最後の値を含む範囲(例:
1...5は1から5まで) - 半開区間(..<):最後の値を含まない範囲(例:
1..<5は1から4まで)
for i in 1...5 {
print(i)
}
1
2
3
4
5
for i in 1..<5 {
print(i)
}
1
2
3
4
2. 文字にも使えるRange
Rangeは数値だけでなく文字にも使えます。アルファベットやひらがなの範囲を指定して繰り返すことができます。
for char in "a"..."e" {
print(char)
}
a
b
c
d
e
このように、文字の連続も範囲で表現できるのはSwiftの便利な特徴です。
3. Strideとは?
Strideは一定の間隔で数値を進めていく仕組みです。たとえば「1から10まで2ずつ増やす」といった処理をシンプルに書けます。
stride(from:to:by:)とstride(from:through:by:)の2種類があります。
- to:終点を含まない
- through:終点を含む
for i in stride(from: 0, to: 10, by: 2) {
print(i)
}
0
2
4
6
8
for i in stride(from: 0, through: 10, by: 2) {
print(i)
}
0
2
4
6
8
10
4. RangeとStrideを組み合わせる場面
例えば100までの数字をチェックするときに、全てを確認するのではなく10ごとに確認したい場合があります。そんなときはStrideが便利です。
for i in stride(from: 0, through: 100, by: 10) {
print("\(i)チェック完了")
}
0チェック完了
10チェック完了
20チェック完了
...
100チェック完了
このように、範囲と間隔を指定することで無駄のない繰り返しが可能になります。
5. 実際の開発で役立つ例
範囲や間隔を使った処理は、日常的なアプリ開発でもよく使います。
- カレンダーアプリで1日ごとや1週間ごとに繰り返す処理
- ゲームで一定間隔ごとにアイテムを出現させる処理
- データを数件ごとにまとめて処理するバッチ処理
こうした場面で、RangeやStrideを知っていると、コードを短く効率的に書けます。
6. 範囲演算の理解を深めよう
Swiftでは、ただの数値の羅列ではなく「範囲そのもの」をオブジェクトとして扱えます。これにより、条件分岐や検索などにも活用可能です。
let range = 1...10
print(range.contains(5)) // true
print(range.contains(15)) // false
範囲に含まれているかどうかを簡単に確認できるので、初心者にとっても理解しやすく実用的です。