カテゴリ: VB.NET 更新日: 2025/11/27

VB.NETで再帰処理を行う方法と活用例を初心者向けに解説

VB.NETで再帰処理を行う方法と活用例
VB.NETで再帰処理を行う方法と活用例

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

生徒

「先生、VB.NETで自分自身を呼び出すメソッドって作れるんですか?」

先生

「はい、それを再帰処理と呼びます。メソッドや関数が自分自身を呼び出すことで、繰り返し処理や階層構造の処理を簡単に書くことができます。」

生徒

「でも、自分を呼ぶとずっとループして止まらなくなりませんか?」

先生

「良い質問です。再帰処理では終了条件を必ず作る必要があります。この条件に達したら再帰を止めることで、無限ループを防ぎます。」

1. 再帰処理とは?

1. 再帰処理とは?
1. 再帰処理とは?

VB.NETの再帰処理とは、メソッドや関数が自分自身を呼び出すプログラムの書き方です。例えば階乗の計算やフィボナッチ数列の生成、フォルダ内のファイル検索など、同じ処理を繰り返す必要がある場面で活躍します。再帰処理では、基本ケース(終了条件)再帰ケース(自分を呼ぶ処理)の2つを組み合わせます。

2. VB.NETで再帰処理を書く基本の構文

2. VB.NETで再帰処理を書く基本の構文
2. VB.NETで再帰処理を書く基本の構文

再帰処理の基本は、自分自身を呼び出すメソッドに条件分岐を入れることです。例えば、1からnまでの合計を計算する場合は次のように書けます。


Function SumToN(n As Integer) As Integer
    If n <= 0 Then
        Return 0 '終了条件
    Else
        Return n + SumToN(n - 1) '再帰処理
    End If
End Function

Console.WriteLine(SumToN(5))

15

ここでは、nが0以下になったら再帰を止める終了条件を設けています。これにより、1+2+3+4+5の合計が正しく計算されます。

3. フィボナッチ数列を作る再帰の例

3. フィボナッチ数列を作る再帰の例
3. フィボナッチ数列を作る再帰の例

再帰処理は階段状に数列を作るときにも便利です。フィボナッチ数列は、前の2つの数を足して次の数を作る数列です。VB.NETで書くと次のようになります。


Function Fibonacci(n As Integer) As Integer
    If n = 0 Then
        Return 0 '終了条件
    ElseIf n = 1 Then
        Return 1 '終了条件
    Else
        Return Fibonacci(n - 1) + Fibonacci(n - 2) '再帰処理
    End If
End Function

For i As Integer = 0 To 9
    Console.Write(Fibonacci(i) & " ")
Next

0 1 1 2 3 5 8 13 21 34

再帰を使うと、数列の規則性をそのままプログラムに表現でき、初心者でも理解しやすいです。

4. 再帰処理の活用例:フォルダ内のファイル検索

4. 再帰処理の活用例:フォルダ内のファイル検索
4. 再帰処理の活用例:フォルダ内のファイル検索

再帰処理はフォルダやディレクトリの階層構造を処理するときにも使えます。例えば、指定フォルダ以下にあるすべてのファイルを検索して名前を表示する場合です。


Sub ListFiles(folderPath As String)
    For Each file As String In System.IO.Directory.GetFiles(folderPath)
        Console.WriteLine(file)
    Next
    For Each subFolder As String In System.IO.Directory.GetDirectories(folderPath)
        ListFiles(subFolder) '再帰呼び出し
    Next
End Sub

ListFiles("C:\Example")

このように再帰を使うと、深い階層のフォルダでも簡単にすべてのファイルを処理できます。

5. 再帰処理の注意点

5. 再帰処理の注意点
5. 再帰処理の注意点
  • 必ず終了条件を作ること。終了条件がないと無限ループになり、プログラムがクラッシュします。
  • 再帰処理は呼び出し回数が増えるとメモリを多く消費するため、大きな数値や深い階層の場合は注意が必要です。
  • 簡単な繰り返し処理はForWhileを使った方が効率的な場合があります。

6. まとめると

6. まとめると
6. まとめると

VB.NETで再帰処理を使うと、階乗計算やフィボナッチ数列、フォルダ検索など、繰り返しや階層構造の処理を自然に表現できます。ポイントは終了条件を必ず設定することと、自分自身を呼ぶ再帰ケースを理解することです。再帰処理をマスターすると、より複雑な問題もシンプルに解けるようになります。

カテゴリの一覧へ
新着記事
New1
VB.NET
VB.NETの例外処理でよくあるアンチパターンと注意点を初心者向けに徹底解説
New2
ASP.NET
ASP.NET WebFormsのGridViewでデータ表示を完全マスター!初心者向けガイド
New3
VB.NET
VB.NETの例外処理とパフォーマンスの関係を初心者向けに完全解説
New4
ASP.NET
ASP.NET WebFormsでデータベースと連携!初心者でもできる保存と表示の基本
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのEnum(列挙型)の使い方を完全解説!初心者にも分かる定義と活用方法
No.2
Java&Spring記事人気No2
VB.NET
VB.NETのBoolean型(True/False)の使い方と条件分岐での活用方法を徹底解説!初心者でも理解できる基本
No.3
Java&Spring記事人気No3
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.4
Java&Spring記事人気No4
VB.NET
VB.NETのIf文の使い方と条件分岐を完全ガイド!初心者でもわかる基本構文と実例
No.5
Java&Spring記事人気No5
VB.NET
VB.NETの例外処理を完全ガイド!初心者でもわかるSystem.Exceptionの仕組み
No.6
Java&Spring記事人気No6
VB.NET
VB.NETプログラムの実行方法まとめ!Visual Studio・コマンドラインの使い方
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのコンストラクタと初期化処理の書き方を初心者向けに解説
No.8
Java&Spring記事人気No8
VB.NET
VB.NETでの変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介