Swiftのfor文とforEachを完全ガイド!初心者でもわかる繰り返し処理の基本と活用方法
生徒
「Swiftで何回も同じ処理をしたいときって、どうやって書けばいいんですか?」
先生
「そのような繰り返し処理にはfor文やforEachというものを使うんですよ。」
生徒
「名前は聞いたことあるけど、使い方はよくわからなくて……。」
先生
「では、基本的な使い方から順番に見ていきましょう!」
1. for文とは?
for文(フォーぶん)は、Swiftで決まった回数だけ何かを繰り返したいときに使います。たとえば「数字を1から5まで順番に表示したい」といったときに便利です。
繰り返し処理とは、同じような動作を何度も自動で行うことです。人間が同じことを何度も書かなくて済むので、プログラムを効率よく作ることができます。
2. Swiftのfor-in文の基本構文
Swiftで一番よく使われるのは、for-in文です。以下は1から5までの数字を繰り返して表示する例です。
for i in 1...5 {
print(i)
}
1...5は「1から5まで」という範囲を表しています。iという変数に1から順番に値が入って、print(i)でその値が表示されます。
3. 配列をfor文で繰り返す
Array(配列:複数のデータをまとめたもの)を繰り返すときもfor-in文が使えます。
let fruits = ["りんご", "バナナ", "ぶどう"]
for fruit in fruits {
print(fruit)
}
このように、配列の中身を1つずつ取り出して表示できます。fruitには、順番に"りんご"、"バナナ"、"ぶどう"が入ります。
4. インデックス付きで繰り返す
配列を繰り返すときに、何番目か(インデックス)も一緒に知りたいときはenumerated()を使います。
let animals = ["犬", "猫", "鳥"]
for (index, animal) in animals.enumerated() {
print("\(index)番目は\(animal)です")
}
indexには順番の番号が入り、animalにはデータが入ります。
5. forEachの使い方
forEach(フォーイーチ)は、配列などに使える繰り返し処理です。for-inとほぼ同じことができますが、関数のように使うのが特徴です。
let colors = ["赤", "青", "緑"]
colors.forEach { color in
print("色は\(color)です")
}
{ color in }の部分が、1つずつ色を取り出す処理です。
6. for文とforEachの違い
for-inとforEachの違いを比べてみましょう。
- for-in文:中で
break(途中で止める)やcontinue(スキップ)を使える - forEach:
breakやcontinueは使えない - 可読性(読みやすさ)はどちらも高いが、
for-inのほうが柔軟性がある
途中で処理を止めたい場合はfor-inを使うのがオススメです。
7. breakとcontinueの使い方
breakは繰り返しを途中で終わらせる命令、continueはその回だけスキップして次に進む命令です。
for i in 1...5 {
if i == 3 {
continue
}
print(i)
}
この例では「3」のときだけprintがスキップされて、「1」「2」「4」「5」が表示されます。
8. 繰り返しを使う場面の具体例
繰り返し処理は、ゲームでスコアを計算したり、買い物リストを画面に表示したり、ユーザーの入力をチェックしたりと、実に多くの場面で使われます。
「決まった回数だけ処理したい」「配列の中の全てのデータを使いたい」などのときに、Swiftのfor文やforEachは大活躍します。
まとめ
Swiftの繰り返し処理であるfor文やforEachは、日常のあらゆるアプリ開発において欠かせない基礎的な構文であり、配列を順番に処理したり特定の回数だけ動作を実行したりする場面で非常に重要な役割を果たします。特に初心者が最初につまずきやすいのは、どの処理をどの構文で書くべきかという判断であり、for文とforEachの違いを明確に理解しておくことは、Swiftのプログラミングを効率よく進めるために大切です。for-in文は古くから使われている書き方で、実際の処理の流れがつかみやすい構文のため、読みやすく柔軟な記述ができる点が大きな特徴です。とくにbreakやcontinueを使って途中で処理を止めたり、一部だけスキップしたりする制御が可能なため、複雑なロジックが必要な場面ではfor-in文が非常に役立ちます。 一方で、forEachはより関数的な書き方ができる構文であり、配列やコレクション操作を直観的に記述でき、コード全体の見通しを良くする効果があります。クロージャを使って要素ごとの処理を書くため、より簡潔で装飾の少ない表現になり、特定の値を順番に処理したい場面では非常に読みやすいコードになります。ただしforEachはbreakやcontinueを使えないという制限があるため、「途中で止めたい」という要件がある場合には向きません。この違いを理解したうえで、用途に応じた繰り返し処理を選べるようになることは、Swiftを使ううえで大きな成長につながります。 また、配列を扱う際にはenumerated()を使ってインデックスと要素を同時に取り出す方法もあり、画面表示やリストの番号付けなど実際のアプリ開発で頻繁に使われます。繰り返し処理はロジックの効率化だけでなく、画面表示やイベント処理などにも幅広く応用できるため、しっかりと身につけておくことが重要です。以下のサンプルプログラムでは、for-in文、enumerated()、forEachを組み合わせた応用例を掲載しているので、今回の学習内容を整理しつつ実際のコードとして利用できる形で確認することができます。
サンプルプログラム:for文とforEachを使った商品リスト処理
let items = ["りんご", "バナナ", "ぶどう", "みかん", "もも"]
// for-in文:インデックスなしの基本的な繰り返し
for item in items {
print("商品名: \(item)")
}
// enumerated(): インデックス付きの繰り返し
for (index, item) in items.enumerated() {
print("\(index)番目の商品は\(item)です")
}
// forEach:関数的な繰り返し処理
items.forEach { item in
print("在庫チェック中: \(item)")
}
応用例:breakやcontinueを使った条件付き繰り返し
for item in items {
if item == "ぶどう" {
print("ぶどうは今回の対象外のためスキップします")
continue
}
if item == "みかん" {
print("みかんが見つかったため処理を終了します")
break
}
print("現在処理中の商品: \(item)")
}
このように、for文とforEachを適切に使い分けることで、データの一覧処理や条件分岐を含む複雑な動作も効率よく安全に実装できます。繰り返し処理は学べば学ぶほど表現の幅が広がり、アプリ開発の自由度が高まる基礎技術なので、実際のプロジェクトで積極的に試して少しずつ慣れていくことが大切です。
生徒
「今日のまとめを読んで、for文とforEachの違いがようやくはっきりとわかりました!同じように繰り返しをする構文なのに、使える場面が違うんですね。」
先生
「その通りです。特にbreakやcontinueを使うかどうかで大きく使い分けが決まりますし、可読性を重視したい場合はforEachがとても便利ですよ。」
生徒
「enumerated()を使うと番号も手に入るのは知りませんでした。リスト表示のときにすごく役立ちそうです!」
先生
「アプリ開発では、番号付きの一覧や順番を意識した処理は本当によく出てきますからね。基礎を押さえておくと応用が一気に楽になりますよ。」
生徒
「はい!次は実際に自分の作っているアプリでも使ってみます。for文もforEachも、自然に選べるようになるまで練習してみます!」