.NET ヘルプ

C#のForループ(開発者向けの動作方法)

公開済み 2023年5月16日
共有:

この包括的なチュートリアルでは、public static void Main メソッド内で for ループを始めるために必要な知識をすべてカバーします。 forループ、ループ変数、ループ本体、反復変数、内側ループと外側ループ、無限ループ、ブール式、入れ子ループなどについて説明します。 開始しましょう!

forループの始め方

for ループは、C#の一種のループで、実行したい反復回数が正確にわかっている場合に特に適しています。 C#におけるforループの構文は、以下のコードブロックに示されている:

    for (initialization; condition; increment)
    {
        // Loop body
    }
    for (initialization; condition; increment)
    {
        // Loop body
    }
initialization
Do While condition
		' Loop body
	increment
Loop
VB   C#

forループのコンポーネントを分解してみましょう:

  1. 初期化: ここでループ変数、または反復変数が宣言され初期化されます。

  2. 条件: ループが複数回文を実行し続けるかどうかを決定するブール値または条件式。

  3. インクリメント: このステートメントは、各イテレーション後にイテレーション変数を更新します。

スタティック・ボイド・メインとループ変数

C#では、static void Main メソッド または static void Main(文字列[]引数) is the entry point of your application.

はアプリケーションのエントリーポイントです。 これはプログラムの実行開始地点です。 以下は、static void Main`メソッド内でforループを使用する方法のループ例です:

    using System;

    class Program
    {
        static void Main()
        {
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine("This is the first for loop!");
            }
        }
    }
    using System;

    class Program
    {
        static void Main()
        {
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine("This is the first for loop!");
            }
        }
    }
Imports System

	Friend Class Program
		Shared Sub Main()
			For i As Integer = 0 To 4
				Console.WriteLine("This is the first for loop!")
			Next i
		End Sub
	End Class
VB   C#

この例では、ループ変数 int i は 0 に初期化され、変数として機能します。 ループは i5 未満である限り実行され続けます。 各イテレーションの後、インクリメント操作 i++i の値を 1 増加させます。

ネストされたループの探索

C#の入れ子ループイテレーターセクションを持つ内側のループと外側のループを形成する、他のループの中に配置されたループです。 これらは、行列のような多次元データ構造を扱うときや、要素の組み合わせごとに特定の操作を実行する必要があるときに役立ちます。

以下は、C#の外側ループの中に内側ループがある、入れ子になったforループの例です:

    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 2; j++)
        {
            Console.WriteLine($"i: {i}, j: {j}");
        }
    }
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 2; j++)
        {
            Console.WriteLine($"i: {i}, j: {j}");
        }
    }
For i As Integer = 0 To 2
		For j As Integer = 0 To 1
			Console.WriteLine($"i: {i}, j: {j}")
		Next j
Next i
VB   C#

この例では、外側のループが実行され、iが0の状態で開始します。その後、内側のループがjのすべての可能な値を繰り返し処理し、次に進むために別の値のiに移ります。

無限ループとループ制御

無限ループとは、テスト条件が決してfalseにならないために終了しないループのことです。 これらは危険であり、プログラムが無期限にハングする原因となる可能性があります。 whileループやforeachループのようなループを書くときは、最終的に終了条件が満たされるように、慎重に書いてください。 以下は、C#で条件を指定しない無限ループの例です。

// This is an example of an infinite loop
for (int i = 0; ; i++)
{
    Console.WriteLine("This loop will run forever!");
}
// This is an example of an infinite loop
for (int i = 0; ; i++)
{
    Console.WriteLine("This loop will run forever!");
}
' This is an example of an infinite loop
Dim i As Integer = 0
Do
	Console.WriteLine("This loop will run forever!")
	i += 1
Loop
VB   C#

標準のforループ構造に加えて、C#はbreakcontinueのようなループ制御文も提供しており、これによりループをより効果的に管理することができます。

  • break:このステートメントはループを即座に終了させるために使用されます。breakステートメントに遭遇すると、ループは終了し、プログラムはループの外側の次の行のコードに続きます。
  • continue: このステートメントは、現在の繰り返しにおいてループ本体内の残りのコードをスキップし、ループの次の繰り返しにジャンプするために使用されます。

    以下は、forループで breakcontinue を使用する例です:

for (int i = 0; i < 10; i++)
{
    if (i == 5)
    {
        break; // Exits the loop when i is equal to 5
    }

    if (i % 2 == 0)
    {
        continue; // Skips even numbers
    }

    Console.WriteLine($"Odd number: {i}");
}
for (int i = 0; i < 10; i++)
{
    if (i == 5)
    {
        break; // Exits the loop when i is equal to 5
    }

    if (i % 2 == 0)
    {
        continue; // Skips even numbers
    }

    Console.WriteLine($"Odd number: {i}");
}
For i As Integer = 0 To 9
	If i = 5 Then
		Exit For ' Exits the loop when i is equal to 5
	End If

	If i Mod 2 = 0 Then
		Continue For ' Skips even numbers
	End If

	Console.WriteLine($"Odd number: {i}")
Next i
VB   C#

この例では、i5 に達するとループの実行が停止します。 continue ステートメントは偶数を飛ばすために使用されるので、5未満の奇数のみが表示されます。

ブール式およびループ条件

ループ条件は、ループを実行し続けるかどうかを決定するブール値です。 この式は各繰り返しの前に評価され、式が true である場合にのみループが実行されます。 多くのループで一般的に使用されるブール式には次のものがあります:

  • 比較対象 i < 10`, i >= 10`, i >= 10`, i == 10`, **i!申し訳ありません。翻訳する内容が指定されていないようです。もう一度テキストを入力してください。

    • 論理演算子: &&(以下の内容を日本語に翻訳してください:

AND


AND)``markdown , **


 `**(OR)```markdown
, **`
```!`**(申し訳ありませんが、具体的な内容が提供されていないため、翻訳することができません。翻訳が必要なテキストを具体的に記載してください。

例:
「IronPDF for .NETは、開発者が簡単にPDFファイルを生成、編集、変換できるパワフルなツールです。」)

 複数の式を論理演算子を使用して組み合わせることで、より複雑なループ条件を作成できます。 例えば:

```cs
    for (int i = 0; i < 10 && i != 5; i++)
    {
        Console.WriteLine(i);
    }

この例では、ループはi10未満で5と等しくない限り実行されます。

コードブロックとループの本体

コードブロックとは、中括弧 {} で囲まれた一連のステートメントのことです。{}`. forループでは、ループ宣言の後に続くコードブロックはループ本体として知られています。 これは、ループの各反復で実行したいコードを配置する場所です。

    for (int i = 0; i < 5; i++)
    {
        // This is the loop body
        Console.WriteLine($"Iteration: {i}");
    }
    for (int i = 0; i < 5; i++)
    {
        // This is the loop body
        Console.WriteLine($"Iteration: {i}");
    }
For i As Integer = 0 To 4
		' This is the loop body
		Console.WriteLine($"Iteration: {i}")
Next i
VB   C#

この例では、ループ本体は現在の反復回数を出力する1つの Console.WriteLine ステートメントで構成されています。

ループ実行ステップ

コード内でforループに出会うと、次のイベントのシーケンスが発生します:

  1. ループ変数が初期化されます。

  2. ブール式が評価されます。 式が「false」の場合、ループはスキップされ、プログラムはループの外の次のコード行に進みます。

  3. 式がtrueの場合、ループ本体が実行されます。

  4. ループ変数がインクリメントまたは更新されます。

  5. ブール式がfalseになるまで、手順2〜4が繰り返されます。

ループを使用してレポートを生成するためのIronPDFの統合

IronPDFのPDF生成機能について学ぶC# で動的で堅牢な PDF レポートを作成します。 ループの作業時、特にループ内で処理されたデータに基づいて動的なレポートやドキュメントを作成する必要がある場合に有用なツールとなります。 このセクションでは、C#のforループとIronPDFを組み合わせて簡単なレポートを生成する方法を紹介します。

まず、IronPDF NuGetパッケージをインストールする必要があります。 Visual Studioのパッケージマネージャーコンソールを使用してこれを行うことができます:

    Install-Package IronPDF

IronPDFをインストールしたら、簡単な例を作成して、PDFを生成してみましょう。IronPDFを使用したHTMLからのPDFレポートforループを使用して数値とその二乗の表を含む。

ステップ1: 必要な名前空間を追加します。

    using IronPdf;
    using System.IO;
    using IronPdf;
    using System.IO;
Imports IronPdf
	Imports System.IO
VB   C#

ステップ2: GenerateReport という新しいメソッドを作成してください。

static void GenerateReport()
{
    // Create an HTML template for the report
    var htmlTemplate = @"
    <html>
        <head>
            <style>
                table {
                    border-collapse: collapse;
                    width: 100%;
                }

                th, td {
                    border: 1px solid black;
                    padding: 8px;
                    text-align: center;
                }
            </style>
        </head>
        <body>
            <h1>Number Squares Report</h1>
            <table>
                <thead>
                    <tr>
                        <th>Number</th>
                        <th>Square</th>
                    </tr>
                </thead>
                <tbody>
                    {0}
                </tbody>
            </table>
        </body>
    </html>";

    // Generate the table rows using a for loop
    string tableRows = "";
    for (int i = 1; i <= 10; i++)
    {
        tableRows += $"<tr><td>{i}</td><td>{i * i}</td></tr>";
    }

    // Insert the generated table rows into the HTML template
    string finalHtml = string.Format(htmlTemplate, tableRows);

    // Create a new PDF document from the HTML using two variables
    var pdf = new IronPdf.ChromePdfRenderer();
    var document = pdf.RenderHtmlAsPdf(finalHtml);

    // Save the PDF to a file
    document.SaveAs("NumberSquaresReport.pdf");
}
static void GenerateReport()
{
    // Create an HTML template for the report
    var htmlTemplate = @"
    <html>
        <head>
            <style>
                table {
                    border-collapse: collapse;
                    width: 100%;
                }

                th, td {
                    border: 1px solid black;
                    padding: 8px;
                    text-align: center;
                }
            </style>
        </head>
        <body>
            <h1>Number Squares Report</h1>
            <table>
                <thead>
                    <tr>
                        <th>Number</th>
                        <th>Square</th>
                    </tr>
                </thead>
                <tbody>
                    {0}
                </tbody>
            </table>
        </body>
    </html>";

    // Generate the table rows using a for loop
    string tableRows = "";
    for (int i = 1; i <= 10; i++)
    {
        tableRows += $"<tr><td>{i}</td><td>{i * i}</td></tr>";
    }

    // Insert the generated table rows into the HTML template
    string finalHtml = string.Format(htmlTemplate, tableRows);

    // Create a new PDF document from the HTML using two variables
    var pdf = new IronPdf.ChromePdfRenderer();
    var document = pdf.RenderHtmlAsPdf(finalHtml);

    // Save the PDF to a file
    document.SaveAs("NumberSquaresReport.pdf");
}
Shared Sub GenerateReport()
	' Create an HTML template for the report
	Dim htmlTemplate = "
    <html>
        <head>
            <style>
                table {
                    border-collapse: collapse;
                    width: 100%;
                }

                th, td {
                    border: 1px solid black;
                    padding: 8px;
                    text-align: center;
                }
            </style>
        </head>
        <body>
            <h1>Number Squares Report</h1>
            <table>
                <thead>
                    <tr>
                        <th>Number</th>
                        <th>Square</th>
                    </tr>
                </thead>
                <tbody>
                    {0}
                </tbody>
            </table>
        </body>
    </html>"

	' Generate the table rows using a for loop
	Dim tableRows As String = ""
	For i As Integer = 1 To 10
		tableRows &= $"<tr><td>{i}</td><td>{i * i}</td></tr>"
	Next i

	' Insert the generated table rows into the HTML template
	Dim finalHtml As String = String.Format(htmlTemplate, tableRows)

	' Create a new PDF document from the HTML using two variables
	Dim pdf = New IronPdf.ChromePdfRenderer()
	Dim document = pdf.RenderHtmlAsPdf(finalHtml)

	' Save the PDF to a file
	document.SaveAs("NumberSquaresReport.pdf")
End Sub
VB   C#

Program.cs ファイルから GenerateReport メソッドを呼び出します。

GenerateReport();
GenerateReport();
GenerateReport()
VB   C#

IronPDFからの数の二乗レポート

この例を実行すると、アプリケーションの出力ディレクトリに「NumberSquaresReport.pdf」という名前のPDFレポートが生成されます。 レポートには、C#のforループを使用して生成された1から10までの数とその平方の表が含まれます。

結論

結論として、この包括的なチュートリアルは、C#のforループとその関連概念に関する堅固な基礎を提供しました。ロープ変数、ループ本体、イテレーション変数、内側および外側のループ、無限ループ、ブール式、コードブロック、ネストされたループを探求し、forループを使用して動的なPDFレポートを生成するための強力なIronPDFライブラリの統合方法も示しました。

IronPDFはIronPDFの無料トライアルその機能をテストしていただき、便利だと感じていただければ、ニーズに合った手頃なオプションからライセンスを開始します。

< 以前
C# 秒数を待機する方法(開発者向け)
次へ >
C# 文字列置換 (開発者のための動作方法)