フッターコンテンツにスキップ
.NETヘルプ

C# Continue(開発者向けの動作方法)

プログラミングにおいて制御フロー文は重要であり、プログラム内の命令の実行順序を示します。 C#では、ループを制御するための基本的な文として、'continue'、'break'、'goto'の3つがあります。 これらの文は、プログラマーにループ内の実行フローを変更する能力を提供し、コードの効率性と可読性を向上させます。 この記事では、C#のcontinueメソッドとbreakメソッドの詳細について、その構文、応用例、ベストプラクティスを探ります。 Later in the article, we will also learn about IronPDF - a robust C# PDF library from Iron Software to read and write PDF documents.

'continue;'文の理解

continue文はループ構造内で使用され、残りのコードブロックをスキップしてループの次の反復に進むために使用されます。これは、プログラム制御に現在の反復の残りのコードをスキップして、次の反復に移行するように指示します。

構文

continue;
continue;
continue
$vbLabelText   $csharpLabel

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Demonstrate Continue Method in C#");
        Console.WriteLine("Print 1 to 10 skipping 5");

        for (int i = 0; i < 10; i++)
        {
            if (i == 5)
            {
                continue; // Skips iteration when i equals 5
            }
            Console.WriteLine(i);
        }
    }
}
public class Program
{
    public static void Main()
    {
        Console.WriteLine("Demonstrate Continue Method in C#");
        Console.WriteLine("Print 1 to 10 skipping 5");

        for (int i = 0; i < 10; i++)
        {
            if (i == 5)
            {
                continue; // Skips iteration when i equals 5
            }
            Console.WriteLine(i);
        }
    }
}
Public Class Program
	Public Shared Sub Main()
		Console.WriteLine("Demonstrate Continue Method in C#")
		Console.WriteLine("Print 1 to 10 skipping 5")

		For i As Integer = 0 To 9
			If i = 5 Then
				Continue For ' Skips iteration when i equals 5
			End If
			Console.WriteLine(i)
		Next i
	End Sub
End Class
$vbLabelText   $csharpLabel

この例では、iが5に等しいとき、continue文が実行され、その反復のループ内の残りのコードがスキップされます。 その結果、数字5は印刷されず、ループは次の反復に移ります。

出力

C# Continue (開発者向けの動作): 図1 - continue文により5がスキップされたコンソール出力

『break;』メソッドの探求

continueとは対照的に、break文はループを早期に終了させるために使用されます。 これに遭遇すると、ループの条件に関係なくループの実行を終了します。 特定の条件が満たされれば、早期にループから抜け出すのに一般的に使用されます。

int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
foreach (int number in numbers)
{
    if (number == 6)
    {
        break; // Exits loop when number equals 6
    }
    Console.WriteLine(number);
}
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
foreach (int number in numbers)
{
    if (number == 6)
    {
        break; // Exits loop when number equals 6
    }
    Console.WriteLine(number);
}
Dim numbers() As Integer = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
For Each number As Integer In numbers
	If number = 6 Then
		Exit For ' Exits loop when number equals 6
	End If
	Console.WriteLine(number)
Next number
$vbLabelText   $csharpLabel

この例では、numbers配列を反復処理します。 数字6に遭遇すると、break文が実行され、ループが早期に終了されます。 その結果、数字1から5のみが印刷されます。

goto;』文の探求

C#のgoto文は、同じメソッド内、同じswitch文内、または同じループ内での指定されたラベルへの制御の移動を提供します。gotoはジャンプ文への実行フローを変更するための強力なツールになり得ますが、コードの可読性と維持可能性を低下させる可能性があるため、現代のプログラミングでの使用はしばしば避けられます。 しかしながら、gotoが効果的かつ安全に使用できる状況があります。

構文

C#におけるgoto文の構文は簡潔です:

goto label;
goto label;
GoTo label
$vbLabelText   $csharpLabel

ラベルは、コード内のターゲットの位置を示すコロン(:)の後に続く識別子です。

特定の条件が満たされたときに、ネストされたループから早期に抜け出したいというシナリオを考えてみてください。 この状況は、goto文を使って達成できます:

for (int i = 0; i < 5; i++)
{
    for (int j = 0; j < 5; j++)
    {
        if (i * j > 10)
        {
            goto exitLoop;
        }
        Console.WriteLine($"i: {i}, j: {j}");
    }
}
exitLoop:
Console.WriteLine("Exited the nested loop prematurely.");
for (int i = 0; i < 5; i++)
{
    for (int j = 0; j < 5; j++)
    {
        if (i * j > 10)
        {
            goto exitLoop;
        }
        Console.WriteLine($"i: {i}, j: {j}");
    }
}
exitLoop:
Console.WriteLine("Exited the nested loop prematurely.");
For i As Integer = 0 To 4
	For j As Integer = 0 To 4
		If i * j > 10 Then
			GoTo exitLoop
		End If
		Console.WriteLine($"i: {i}, j: {j}")
	Next j
Next i
exitLoop:
Console.WriteLine("Exited the nested loop prematurely.")
$vbLabelText   $csharpLabel

この例では、条件i * j > 10が満たされたとき、goto文は制御をexitLoopラベルに移し、ネストされたループの外に効果的に脱出します。

Introducing IronPDF - Comprehensive PDF Library from Iron Software.

IronPDFはIron Softwareによって開発された強力なC# PDFライブラリで、.NETプロジェクトでのPDF利用に関する総合的なソリューションを提供します。 PDFドキュメントを作成、編集、エクスポート、保護、ロード、操作する必要がある場合、IronPDFがサポートします。 ここではいくつかの主な機能と使用例をご紹介します:

  1. HTMLからPDF変換:HTMLコンテンツをシームレスにPDF形式に変換します。 HTML、MVC、ASPX、さらには画像からPDFを生成できます。
  2. PDFの署名、編集、読み込み50以上の機能を利用して、PDFファイルの署名、編集、およびコンテンツの抽出が可能です。 デジタル署名を追加したり、既存のPDFを変更したりする際にもIronPDFにより簡単に行えます。
  3. クロスプラットフォームサポート:IronPDFはC#、F#、VB.NET用に設計されており、.NET Core、.NET Standard、.NET Frameworkなど様々な.NETバージョンで動作します。 Java、Node.js、Pythonにも対応しています。
  4. 互換性と環境
    • .NETバージョン:C#、VB.NET、F#をサポート。
    • プロジェクトタイプ:Web(Blazor & WebForms)、デスクトップ(WPF & MAUI)、コンソールアプリケーションで動作します。
    • アプリ環境:Windows、Linux、Mac、Docker、Azure、AWSなどに対応。
    • IDE:Microsoft Visual StudioおよびJetBrains Riderとシームレスに統合します。
    • OS & プロセッサー:Windows、Mac、Linux(x64、x86、ARM)で動作します。
  5. PDF標準と編集
    • 各種PDFバージョン(1.2 - 1.7)、PDF/UA、およびPDF/Aをサポート。
    • PDFファイルのプロパティ、セキュリティ、および圧縮を設定。
    • メタデータ、リビジョン履歴、およびドキュメント構造を編集。
    • ページテンプレート、ヘッダー、フッター、ページ設定の適用。
  6. パフォーマンス最適化
    • 効率的なPDF生成のための完全なマルチスレッディングと非同期サポート。
    • 精度、使いやすさ、速度を優先します。

IronPDFライブラリを知った今、IronPDFとcontinue文、break文、goto文を使ってアプリケーションを作成しましょう。

Continue文を使ったPDFドキュメントの生成

まず、Visual Studioコンソールアプリケーションを作成します。

C# Continue (開発者向けの動作): 図2 - Visual Studioコンソールアプリの作成

プロジェクト名と場所を指定します。

C# Continue (開発者向けの動作): 図3 - プロジェクト名の指定

次のステップとして、必要な.NETバージョンを選択し、[作成]をクリックします。

次に、以下のコマンドを使用してIronPDFをインストールします。

dotnet add package IronPdf --version 2024.4.2

さて、制御文を使用してPDFドキュメントを生成しましょう。

using System;
using System.Threading.Tasks;
using IronPdf;

class Program
{
    public static async Task Main()
    {
        Console.WriteLine("Generate PDF document Using IronPDF");

        // Initialize a ChromePdfRenderer to render HTML content to PDF
        var htmlToPdf = new ChromePdfRenderer();
        var content = "<h1>Generate Numbers from 1 to 10, skip 5</h1>";

        // Use continue statement to build HTML content
        for (int i = 0; i < 10; i++)
        {
            if (i == 5)
            {
                continue; // Skip appending number 5 to the content
            }
            content += $"<p>{i}</p>";
        }

        content += "<h1>Generate Numbers from 1 to 10, stop at 7</h1>";

        // Use break statement to terminate loop at 7
        for (int i = 0; i < 10; i++)
        {
            if (i == 7)
            {
                break; // Stop appending numbers after 6
            }
            content += $"<p>{i}</p>";
        }

        // Render the HTML content as a PDF document
        var pdf = await htmlToPdf.RenderHtmlAsPdfAsync(content);
        pdf.SaveAs("AwesomeIronPDF.pdf");

        Console.WriteLine("PDF generated successfully.");
    }
}
using System;
using System.Threading.Tasks;
using IronPdf;

class Program
{
    public static async Task Main()
    {
        Console.WriteLine("Generate PDF document Using IronPDF");

        // Initialize a ChromePdfRenderer to render HTML content to PDF
        var htmlToPdf = new ChromePdfRenderer();
        var content = "<h1>Generate Numbers from 1 to 10, skip 5</h1>";

        // Use continue statement to build HTML content
        for (int i = 0; i < 10; i++)
        {
            if (i == 5)
            {
                continue; // Skip appending number 5 to the content
            }
            content += $"<p>{i}</p>";
        }

        content += "<h1>Generate Numbers from 1 to 10, stop at 7</h1>";

        // Use break statement to terminate loop at 7
        for (int i = 0; i < 10; i++)
        {
            if (i == 7)
            {
                break; // Stop appending numbers after 6
            }
            content += $"<p>{i}</p>";
        }

        // Render the HTML content as a PDF document
        var pdf = await htmlToPdf.RenderHtmlAsPdfAsync(content);
        pdf.SaveAs("AwesomeIronPDF.pdf");

        Console.WriteLine("PDF generated successfully.");
    }
}
Imports System
Imports System.Threading.Tasks
Imports IronPdf

Friend Class Program
	Public Shared Async Function Main() As Task
		Console.WriteLine("Generate PDF document Using IronPDF")

		' Initialize a ChromePdfRenderer to render HTML content to PDF
		Dim htmlToPdf = New ChromePdfRenderer()
		Dim content = "<h1>Generate Numbers from 1 to 10, skip 5</h1>"

		' Use continue statement to build HTML content
		For i As Integer = 0 To 9
			If i = 5 Then
				Continue For ' Skip appending number 5 to the content
			End If
			content &= $"<p>{i}</p>"
		Next i

		content &= "<h1>Generate Numbers from 1 to 10, stop at 7</h1>"

		' Use break statement to terminate loop at 7
		For i As Integer = 0 To 9
			If i = 7 Then
				Exit For ' Stop appending numbers after 6
			End If
			content &= $"<p>{i}</p>"
		Next i

		' Render the HTML content as a PDF document
		Dim pdf = Await htmlToPdf.RenderHtmlAsPdfAsync(content)
		pdf.SaveAs("AwesomeIronPDF.pdf")

		Console.WriteLine("PDF generated successfully.")
	End Function
End Class
$vbLabelText   $csharpLabel

コードの説明

  1. 初期化とコンテンツの定義:PDFに含めるHTMLコンテンツを定義することから始めます。
  2. continueの使用:最初のループでは、1から10までの数字を生成する際に、数字5をスキップするためにcontinue文を使用します。
  3. breakの使用:2番目のループでは、数字7に到達したところでループを終了するためにbreak文を使用します。
  4. PDFのレンダリングChromePdfRendererオブジェクトを使用してHTMLコンテンツをPDFファイルに変換し、それを保存します。

出力

C# Continue (開発者向けの動作): 図4 - continueとbreakメソッドの動作を示す例

ベストプラクティスと考慮事項

  1. 明確さと可読性:ほとんどの場合、breakcontinue、またはネストされたループのような構造化された制御フロー文を使用することで、コードの可読性と理解可能性が向上します。 goto文は、特に大規模なコードベースや多用した場合に、コードの追跡を困難にすることがあります。
  2. 意図しない結果の回避gotoを誤用すると、スパゲッティコードにつながり、プログラムの挙動を理解するのが難しくなります。 シンプルかつ十分にドキュメント化された使用法でgotoを用いることが重要です。
  3. エラーハンドリングgotoの一般的なユースケースとして、クリーニングやエラーハンドリングルーチンへのジャンプに利用されますが、現代のC#コードベースでは、構造化された例外処理(try-catch-finally)が一般的で、より構造化され読みやすいアプローチを提供します。
  4. パフォーマンスに関する考慮事項:パフォーマンスの観点からは、gotoは一般的にほとんど影響を与えません。 しかし、gotoでの主な考慮事項は、パフォーマンスというよりも、維持可能性と可読性です。

ライセンス(試用版あり)

IronPDFライセンスの詳細を探索する

試用開発者トライアルライセンスが利用可能です。試用ライセンスを取得する

以下に示すように、appSettings.jsonファイルのキーを交換してください。

{
  "IronPdf.License.LicenseKey": "The Key Here"
}

結論

結論として、continueメソッドとbreakメソッドは、C#でのループ実行を制御するために必要不可欠なツールです。 これらの文を戦略的にコードに組み込むことで、効率性、可読性、維持可能性を向上させることができます。 C#のgoto文は、実行フローの変更のためのメカニズムを提供しますが、その使用には注意を要します。 多くの場合、構造化された制御フロー文であるbreakcontinue、またはネストループの方が、より明確で維持しやすい解決策を提供します。 しかし、特定のエラーハンドリング状況など、gotoを効果的かつ安全に使用できるニッチなシナリオもあります。 どのプログラミング構造を用いるにしても、使用するかどうかを決定する際には、トレードオフを考慮し、コードの可読性と維持可能性を考慮することが重要です。

Together with IronPDF - Comprehensive PDF Solutions library from Iron Software, developers can gain advanced skills to develop modern applications.

よくある質問

C# における 'continue' ステートメントはどのように機能しますか?

C# の 'continue' ステートメントは、ループ内で現在のイテレーションの残りのコードをスキップして次のイテレーションに直接進むために使用されます。これは、ループ内で特定の条件や値をバイパスするのに役立ちます。例えば、ループで数値 5 をスキップする場合です。

ループ内での 'break' ステートメントの役割は何ですか?

'break' ステートメントは、特定の条件が満たされたときにループを早期に終了するために使用されます。これは、数値 6 に到達した後にイテレーションを停止するなど、ある地点でループを止めるのに役立ちます。

C# で 'goto' ステートメントを使用するのはいつですか?

'goto' ステートメントはコードのラベル付きセクションにジャンプすることを可能にしますが、読みやすさの問題があるため一般には推奨されません。他の制御構造が効率や明確さを欠く特定のシナリオで使用するのが最良です。

IronPDF はどのように C# プロジェクトに統合できますか?

IronPDF は、dotnet add package IronPdf --version [version_number] コマンドを使用して C# プロジェクトに統合でき、様々な .NET 環境で PDF の作成、編集、および変換を可能にします。

C# における包括的な PDF ライブラリを使用する利点は何ですか?

IronPDF のような包括的な PDF ライブラリは、PDF の作成、編集、変換のための強力な機能を提供することで C# アプリケーションを向上させます。HTML から PDF への変換をサポートし、クロスプラットフォームのサポートを提供するため、開発者にとって多用途なツールです。

C# での PDF 生成に制御フローステートメントをどのように活用できますか?

'continue' や 'break' といった制御フローステートメントは、PDF 生成中のループの実行を管理するために使用できます。これにより、IronPDF を使用して特定の条件に基づきコンテンツを選択的に追加したり、コンテンツ生成を停止したりすることができます。

IronPDF の互換性機能は何ですか?

IronPDF は、.NET Core、.NET Standard、.NET Framework など、さまざまな .NET バージョンに対応しています。C#、VB.NET、F# など複数の言語をサポートし、Microsoft Visual Studio や JetBrains Rider などの IDE と統合されます。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。