MENU

【Swift入門】繰り返し処理を完全マスター!for-in・while・repeat-whileの使い分けを徹底解説

Swiftで開発を始めたばかりの方にとって、繰り返し処理(ループ処理)は必須のスキルです。この記事では、Swiftで使える6つの繰り返し処理の方法を、実際のコード例とともに初心者にもわかりやすく解説します。

目次

Swiftの繰り返し処理とは?

繰り返し処理とは、同じ処理を何度も実行するためのプログラミング技法です。例えば、配列の全要素を表示したり、特定の条件を満たすまで処理を続けたりする場合に使用します。

Swiftでは主に以下の6つの方法があります。

  1. for-inループ
  2. whileループ
  3. repeat-whileループ
  4. strideを使った繰り返し
  5. forEachメソッド
  6. 制御文(continue/break)

それでは、それぞれの使い方を詳しく見ていきましょう。

1. for-inループ:最も基本的な繰り返し処理

for-inループは、Swiftで最もよく使われる繰り返し処理です。配列や範囲を簡単に繰り返し処理できます。

配列を繰り返し処理する

let fruits = ["りんご", "バナナ", "オレンジ"]
for fruit in fruits {
    print(fruit)
}

// 出力結果:
// りんご
// バナナ
// オレンジ

数値の範囲を繰り返す

// 1から5まで(5を含む)
for i in 1...5 {
    print(i)
}
// 出力:1, 2, 3, 4, 5

// 0から4まで(5を含まない)
for i in 0..<5 {
    print(i)
}
// 出力:0, 1, 2, 3, 4

ポイント...は終了値を含み、..<は終了値を含みません。

インデックスと値を同時に取得する

配列の要素と一緒に、そのインデックス(位置)も必要な場合はenumerated()を使います。

let fruits = ["りんご", "バナナ", "オレンジ"]
for (index, fruit) in fruits.enumerated() {
    print("\(index)番目: \(fruit)")
}

// 出力結果:
// 0番目: りんご
// 1番目: バナナ
// 2番目: オレンジ

2. whileループ:条件が満たされる間繰り返す

whileループは、指定した条件がtrueの間、処理を繰り返します。繰り返し回数が事前にわからない場合に便利です。

var count = 0
while count &lt; 5 {
    print("カウント: \(count)")
    count += 1
}

// 出力:
// カウント: 0
// カウント: 1
// カウント: 2
// カウント: 3
// カウント: 4

注意点:条件が最初からfalseの場合、一度も実行されません。

var count = 10
while count &lt; 5 {
    print("この行は実行されません")
}

3. repeat-whileループ:最低1回は必ず実行される

repeat-whileループは、他のプログラミング言語のdo-whileに相当します。条件チェックの前に処理が実行されるため、最低1回は必ず実行されます。

var number = 0
repeat {
    print("数値: \(number)")
    number += 1
} while number &lt; 3

// 出力:
// 数値: 0
// 数値: 1
// 数値: 2

whileとrepeat-whileの違い

// whileの場合:一度も実行されない
var count1 = 10
while count1 &lt; 5 {
    print("実行されない")
}

// repeat-whileの場合:1回は実行される
var count2 = 10
repeat {
    print("1回は実行される")
} while count2 &lt; 5

4. stride:特定の間隔で繰り返す

stride関数を使うと、特定の間隔(ステップ)で数値を増減させながら繰り返し処理ができます。

2ずつ増やす

for i in stride(from: 0, to: 10, by: 2) {
    print(i)
}
// 出力:0, 2, 4, 6, 8

逆順に処理する

for i in stride(from: 10, through: 0, by: -2) {
    print(i)
}
// 出力:10, 8, 6, 4, 2, 0

ポイント

  • to: 終了値を含まない
  • through: 終了値を含む

5. 制御文:continue と break

繰り返し処理の流れを制御するための2つの重要なキーワードがあります。

continue:現在の繰り返しをスキップ

continueを使うと、その回の処理をスキップして次の繰り返しに進みます。

for i in 1...5 {
    if i == 3 {
        continue  // 3の時だけスキップ
    }
    print(i)
}
// 出力:1, 2, 4, 5(3がスキップされる)

break:ループを終了

breakを使うと、ループを完全に終了します。

for i in 1...10 {
    if i == 5 {
        break  // 5になったらループ終了
    }
    print(i)
}
// 出力:1, 2, 3, 4

実践例:偶数だけを処理する

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for number in numbers {
    if number % 2 != 0 {
        continue  // 奇数はスキップ
    }
    print("\(number)は偶数です")
}
// 出力:2, 4, 6, 8, 10が偶数として表示される

6. forEachメソッド:関数型プログラミングスタイル

forEachは、配列の各要素に対して処理を実行するメソッドです。関数型プログラミングのスタイルで記述できます。

let numbers = [1, 2, 3, 4, 5]
numbers.forEach { number in
    print(number)
}
// 出力:1, 2, 3, 4, 5

省略記法

let numbers = [1, 2, 3, 4, 5]
numbers.forEach {
    print($0)  // $0は最初の引数を表す
}

forEachの注意点

重要forEachの中ではbreakcontinueは使えません。これらを使いたい場合は通常のfor-inループを使用してください。

// これはエラーになる
numbers.forEach { number in
    if number == 3 {
        break  // エラー:forEachではbreakは使えない
    }
    print(number)
}

Swiftの繰り返し処理の使い分け

どの繰り返し処理を使うべきか迷った時の選び方をまとめました。

状況おすすめの方法
配列の全要素を処理したいfor-in
範囲の数値を処理したいfor-in
繰り返し回数が不明while
最低1回は実行したいrepeat-while
特定の間隔で処理したいstride
関数型スタイルで書きたいforEach

実践例:ユーザー入力を繰り返し受け取る

実際のアプリ開発でよくあるパターンとして、正しい入力があるまで繰り返すコードを書いてみましょう。

var userInput = ""
var isValidInput = false

repeat {
    print("パスワードを入力してください(6文字以上):")
    userInput = readLine() ?? ""
    
    if userInput.count >= 6 {
        isValidInput = true
        print("パスワードが設定されました")
    } else {
        print("6文字以上で入力してください")
    }
} while !isValidInput

まとめ:Swiftの繰り返し処理をマスターしよう

この記事では、Swiftで使える6つの繰り返し処理について解説しました。

  • for-inループ:配列や範囲の処理に最適
  • whileループ:条件が満たされる間繰り返す
  • repeat-whileループ:最低1回は実行したい時に
  • stride:特定の間隔で繰り返す
  • 制御文:continueとbreakでループを制御
  • forEach:関数型スタイルで記述

それぞれの特徴を理解して、状況に応じて使い分けることで、より読みやすく効率的なSwiftコードが書けるようになります。まずは基本的なfor-inループから始めて、徐々に他の方法も試してみてください。

プログラミングの独学におすすめ
プログラミング言語の人気オンラインコース
独学でプログラミングを学習している方で、エラーなどが発生して効率よく勉強ができないと悩む方は多いはず。Udemyは、プロの講師が動画で実際のプログラムを動かしながら教えてくれるオンライン講座です。講座の価格は、セール期間中には専門書籍を1冊買うよりも安く済むことが多いです。新しく学びたいプログラミング言語がある方は、ぜひUdemyでオンライン講座を探してみてください。
目次