カテゴリ: Swift 更新日: 2025/10/18

Swiftの再帰関数の使い方をやさしく解説!初心者でも理解できる再帰の基本と実践例

Swift 再帰関数の基本と実践例
Swift 再帰関数の基本と実践例

先生と生徒の会話形式で理解しよう

生徒

「Swiftで、自分自身を呼び出す関数があるって聞いたんですが、本当にそんなことできるんですか?」

先生

「はい、それは『再帰関数(さいきかんすう)』と呼ばれるものです。Swiftでは、自分自身を呼び出すことで繰り返し処理を行うことができます。」

生徒

「なるほど...でも、それって無限ループになりませんか?止まらないようにできるんですか?」

先生

「そこが再帰関数の大事なポイントです。終了条件(しゅうりょうじょうけん)を決めておけば、ちゃんと止まるんですよ。それでは、詳しく見ていきましょう!」

1. 再帰関数とは?

1. 再帰関数とは?
1. 再帰関数とは?

Swiftの再帰関数(さいきかんすう)とは、自分自身を呼び出す関数のことです。プログラムの中で、同じ関数がくり返し呼ばれることで、処理を繰り返します。

例えば、「1から5までの数字を順番に表示したい」ときに、for文などを使わずに、再帰関数で書くことができます。

ただし、再帰関数には必ず終了条件をつける必要があります。これがないと、永遠に関数が自分自身を呼び出し続けてしまい、エラーになります。

2. 再帰関数の基本構造

2. 再帰関数の基本構造
2. 再帰関数の基本構造

Swiftでの再帰関数の基本的な形は、以下のようになります。


func 関数名(引数) {
    if 終了条件 {
        return
    }
    // 処理内容
    関数名(次の引数)
}

このように、まず終了条件で止める処理を書き、それ以外の場合に再び関数自身を呼び出します。

3. 実際の例:1から5までを表示する

3. 実際の例:1から5までを表示する
3. 実際の例:1から5までを表示する

では、実際に「1から5までの数字を表示する再帰関数」を作ってみましょう。


func printNumbers(_ n: Int) {
    if n > 5 {
        return
    }
    print(n)
    printNumbers(n + 1)
}

printNumbers(1)

このコードを実行すると、次のような結果になります。


1
2
3
4
5

ポイントは、n > 5の部分で処理を止めるようにしているところです。これが「終了条件」になります。

4. 応用:階乗(かいじょう)を計算する

4. 応用:階乗(かいじょう)を計算する
4. 応用:階乗(かいじょう)を計算する

再帰関数の有名な例として、「階乗(かいじょう)」の計算があります。

階乗とは、「5!(ファイブ・ファクトリアル)」のように表現されて、5 × 4 × 3 × 2 × 1のように数字を掛け合わせた結果のことです。


func factorial(_ n: Int) -> Int {
    if n == 1 {
        return 1
    }
    return n * factorial(n - 1)
}

let result = factorial(5)
print(result)

実行すると、次のような結果になります。


120

この関数では、n == 1が終了条件です。1になったら再帰を終えて、それまでの計算結果を返していきます。

5. 再帰関数のメリットと注意点

5. 再帰関数のメリットと注意点
5. 再帰関数のメリットと注意点

再帰関数には、以下のようなメリット注意点があります。

  • コードがシンプルで読みやすい(とくに、入れ子の構造や木構造などに向いています)
  • 処理の流れが理解しやすい(同じ関数の中で完結するため)
  • ただし、繰り返し回数が多いとエラーになる可能性がある(スタックオーバーフロー)

再帰関数を使うときは、終了条件をしっかり設けて、無限ループにならないように注意しましょう。

6. なぜ再帰関数が必要なのか?

6. なぜ再帰関数が必要なのか?
6. なぜ再帰関数が必要なのか?

一見すると、for文やwhile文で同じことができそうですが、再帰関数が活躍する場面もあります。

例えば、ツリー構造(フォルダの中にさらにフォルダがあるような構造)をたどる場合、再帰がとても便利です。

複雑な構造を処理する際、コードがすっきりして、エラーが起きにくくなります。

7. 再帰関数は初心者でも使える?

7. 再帰関数は初心者でも使える?
7. 再帰関数は初心者でも使える?

はい、再帰関数は初心者でも使えるようになります。最初は少し難しく感じるかもしれませんが、「関数が自分自身を呼び出す」という仕組みと、「終わる条件を作る」というルールを守れば、だれでも使いこなせます。

最初は数字を数えたり、階乗を計算したりといったシンプルな例から練習するのがおすすめです。

カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!