【Swift入門】繰り返し処理をマスターする:for・while・repeat-whileと便利メソッド
この記事でわかること
- Swiftの基本的な繰り返し処理
for/while/repeat-whileの使い方 - 配列や範囲を使ったループの書き方
- Swift独自の便利な繰り返しメソッド
forEachやmapの活用方法
for-in 文(基本の繰り返し)
Swift の for 文は、回数やコレクションを直接指定して繰り返せるのが特徴
範囲を指定して繰り返す
for i in 1...5 {
print("i = \(i)")
}i = 1
i = 2
i = 3
i = 4
i = 51...5は「1から5まで」を意味する閉区間演算子1..<5のように書くと「未満」、つまり 1,2,3,4 となる
配列を繰り返す
let fruits = ["リンゴ", "バナナ", "ブドウ"]
for fruit in fruits {
print("フルーツ: \(fruit)")
}フルーツ: リンゴ
フルーツ: バナナ
フルーツ: ブドウインデックス付きの繰り返し
let animals = ["いぬ", "ねこ", "うさぎ"]
for (index, animal) in animals.enumerated() {
print("\(index)番目は \(animal)")
}0番目は いぬ
1番目は ねこ
2番目は うさぎenumerated()を使うと(index, 値)のペアで取り出せる
while 文
条件が true の間、処理を繰り返す
var n = 1
while n <= 3 {
print("n = \(n)")
n += 1
}n = 1
n = 2
n = 3repeat-while 文
少なくとも1回は処理を実行する繰り返し。ほかの言語の do-while に相当
var m = 1
repeat {
print("m = \(m)")
m += 1
} while m <= 3m = 1
m = 2
m = 3ループ制御:continue と break
break:今のループを終了continue:残りの処理をスキップして次の周回へ
for i in 1...5 {
if i == 3 {
continue
}
if i == 5 {
break
}
print(i)
}1
2
4Swift独自の便利な繰り返し
forEach
配列に対して繰り返し処理が書ける
let nums = [1, 2, 3]
nums.forEach { n in
print("num = \(n)")
}num = 1
num = 2
num = 3map / filter
関数型スタイルで配列を変換・抽出できる
let numbers = [1, 2, 3, 4, 5]
// すべて2倍にする
let doubled = numbers.map { $0 * 2 }
// 偶数だけ取り出す
let evens = numbers.filter { $0 % 2 == 0 }
print(doubled)
print(evens)[2, 4, 6, 8, 10]
[2, 4]for-inでも書けるが、mapやfilterを使うとより Swift らしいコードになる
まとめ
for-in文で範囲や配列の繰り返し処理が簡単に書けるwhile/repeat-while文で条件に応じたループ制御ができるforEachやmap/filterを使うと関数型スタイルで簡潔に書ける
この基礎を理解すると、Swiftでの繰り返し処理や配列操作を効率よく書けるようになる