.NET ヘルプ

C# 継続(開発者にとっての働き方)

公開済み 2024年4月29日
共有:

イントロダクション

制御フロー文はプログラミングにおいて非常に重要です。それはプログラム内の命令の実行順序を決定するからです。 C#では、ループを制御するための基本文として「continue」、「break」、および「goto」の3つがあります。 これらの文はプログラマーにループ内の実行フローを変更する能力を提供し、コードの効率と可読性を向上させます。 この記事では、C#のcontinueおよびbreakメソッドの詳細について掘り下げ、その構文、適用例、ベストプラクティスを探ります。 記事の後半では、次のことについても学びますIronPDF - 堅牢なC# PDFライブラリからIron SoftwarePDFドキュメントの読み書きを行うために。

'continue;' ステートメントの理解

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

構文

continue;
continue;
continue
VB   C#

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Demonstrate Continue Method in C#");
        Console.WriteLine("Print 1 to 10 skip 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 skip 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 skip 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
VB   C#

この例では、i が 5 の場合、continue 文が実行され、その反復のループ内の残りのコードがスキップされます。 その結果、数字5は印刷されず、ループは次の反復処理に進みます。

出力

C# 継続 (開発者向けの動作方法): 図1 - continue ステートメントによってケース5がスキップされることを示すコンソール出力

「break;」メソッドの探求

継続(continue)とは逆に、break 文はループを途中で終了するために使用されます。 それに遭遇すると、ループの条件にかかわらず、ループの実行が終了します。 特定の条件が満たされた場合、whileループのようなループから早期に抜ける際によく使用されます。

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
VB   C#

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

goto;」ステートメントを調査する

C#のgotoステートメントは、同じメソッド内、同じスイッチステートメント内、または同じループ内の指定されたラベルに制御を移す方法を提供します。gotoはジャンプステートメントの実行フローを変更する強力なツールになり得ますが、コードの可読性や保守性が低下する可能性があるため、現代のプログラミング慣行においては使用が控えられることが多いです。 しかし、gotoが効果的かつ安全に使用される状況もあります。

構文

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

goto label;
goto label;
GoTo label
VB   C#

ラベルが識別子の後にコロンで続く場合(:)コードのターゲット位置を示します。

特定の条件が満たされた場合に、ネストされたループを早期に終了したいと考えているシナリオを考えてください。 これを実現するには、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.")
VB   C#

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

Iron Software](https://ironsoftware.com)の[IronPDF - 総合PDFライブラリ](/)をご紹介します。

IronPDFIron Softwareによって開発された、強力なC# PDFライブラリは、.NETプロジェクトでPDFを扱うためのオールインワンソリューションを提供します。 PDFドキュメントの作成、編集、エクスポート、セキュリティ、読み込み、操作が必要な場合でも、IronPDFはすべてをカバーしています。 ここでは、いくつかの主要な機能と使用例を紹介します:

  1. HTML から PDF への変換: HTML コンテンツを PDF 形式にスムーズに変換します。 HTML、MVC、ASPX、さらには画像からPDFを生成することができます。

  2. 署名、編集、およびPDFの読み取り: 50以上の機能を備えたIronPDFは、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 などに対応。

    • IDEs: 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ステートメントを使用するアプリケーションを書いてみましょう。

続行ステートメントを使用してPDFドキュメントを生成する

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

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

プロジェクト名と場所を提供してください。

C# 続行(開発者向けの使い方):図3 - プロジェクト名を指定

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

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

dotnet add package IronPdf --version 2024.4.2

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

using System;
using System.Threading.Tasks;
using System.Diagnostics;
using IronPdf;
class Program
{
    public static async Task Main()
    {
        Console.WriteLine("Generate PDF document Using IronPDF");
        var htmlToPdf = new ChromePdfRenderer();
        var content = "<h1>Generate Numbers from 1 to 10, skip 5</h1>";
        for (int i = 0; i < 10; i++)
        {
            if (i == 5)
            {
                continue;
            }
            content += $"<p>{i}</p>";
        }
        content += "<h1>Generate Numbers from 1 to 10, stop at 7</h1>";
        for (int i = 0; i < 10; i++)
        {
            if (i == 7)
            {
                break;
            }
            content += $"<p>{i}</p>";
        }
        var pdf = htmlToPdf.RenderHtmlAsPdf(content);
        pdf.SaveAs("AwesomeIronPDF.pdf");
        Console.WriteLine("PDF generated successfully.");
    }
}
using System;
using System.Threading.Tasks;
using System.Diagnostics;
using IronPdf;
class Program
{
    public static async Task Main()
    {
        Console.WriteLine("Generate PDF document Using IronPDF");
        var htmlToPdf = new ChromePdfRenderer();
        var content = "<h1>Generate Numbers from 1 to 10, skip 5</h1>";
        for (int i = 0; i < 10; i++)
        {
            if (i == 5)
            {
                continue;
            }
            content += $"<p>{i}</p>";
        }
        content += "<h1>Generate Numbers from 1 to 10, stop at 7</h1>";
        for (int i = 0; i < 10; i++)
        {
            if (i == 7)
            {
                break;
            }
            content += $"<p>{i}</p>";
        }
        var pdf = htmlToPdf.RenderHtmlAsPdf(content);
        pdf.SaveAs("AwesomeIronPDF.pdf");
        Console.WriteLine("PDF generated successfully.");
    }
}
Imports System
Imports System.Threading.Tasks
Imports System.Diagnostics
Imports IronPdf
Friend Class Program
	Public Shared Async Function Main() As Task
		Console.WriteLine("Generate PDF document Using IronPDF")
		Dim htmlToPdf = New ChromePdfRenderer()
		Dim content = "<h1>Generate Numbers from 1 to 10, skip 5</h1>"
		For i As Integer = 0 To 9
			If i = 5 Then
				Continue For
			End If
			content &= $"<p>{i}</p>"
		Next i
		content &= "<h1>Generate Numbers from 1 to 10, stop at 7</h1>"
		For i As Integer = 0 To 9
			If i = 7 Then
				Exit For
			End If
			content &= $"<p>{i}</p>"
		Next i
		Dim pdf = htmlToPdf.RenderHtmlAsPdf(content)
		pdf.SaveAs("AwesomeIronPDF.pdf")
		Console.WriteLine("PDF generated successfully.")
	End Function
End Class
VB   C#

コードの説明

  1. 最初に、PDFドキュメントで使用するコンテンツを作成しています。

  2. 私たちはコンテンツをHTMLドキュメントとして準備します。

  3. forループの中でcontinueステートメントを使用して、1から10までを表示し、5をスキップします。

  4. また、1から7までを印刷してブレークするためにbreakステートメントを使用します。

  5. 次に、ChromePdfRendererオブジェクトを使用してHTML文書をPDF文書に保存します。

出力

C# 続行 (開発者向けの動作方法): 図4 - 続行とブレークメソッドがどのように機能するかを示す出力例

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

  1. 明確さと可読性: ほとんどの場合、breakcontinue、またはネストされたループのような構造化された制御フロー文を使用することで、コードがより読みやすく理解しやすくなります。 goto 文は、大規模なコードベースや過度に使用された場合、コードの追跡を難しくすることがあります。

  2. 意図しない結果を避ける: gotoを誤って使用すると、スパゲッティコードが生じ、プログラムの挙動を理解するのが難しくなる可能性があります。 goto を賢明に使用し、その使用が明確で十分に文書化されていることを確認することが重要です。

  3. エラーハンドリング: goto の一般的な使用例の一つは、エラーハンドリングのシナリオで、クリーンアップやエラーハンドリングのルーチンにジャンプするために使用されます。しかし、現代のC#コードベースでは、構造化例外処理がよく使われます。(try-catch-finally)エラーハンドリングには、より構造化され読みやすいアプローチを提供します。

  4. パフォーマンスの考慮事項:パフォーマンスに関して、goto は通常、ほとんど影響を与えません。 しかし、goto の主な懸念は、パフォーマンスではなく、保守性と可読性です。

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

IronPDFライセンスの詳細を見る.

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

appSettings.jsonファイルに示されているKeyを置き換えてください。

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

結論

結論として、continue メソッドと break メソッドは、C#のループ実行を制御する上で不可欠なツールです。 これらのステートメントをコードに戦略的に組み込むことで、その効率性、可読性、および保守性を向上させることができます。 C#のgotoステートメントは、実行の流れを変更するためのメカニズムを提供しますが、その使用は慎重に行うべきです。 ほとんどの場合、breakcontinue、またはネストされたループのような構造化された制御フロー文は、よりわかりやすく、保守しやすいソリューションを提供します。 ただし、特定のエラー処理の状況などで、gotoが効果的かつ安全に使用できるニッチなシナリオがあります。 他のプログラミング構造と同様に、gotoを使用するかどうかを決定する際には、トレードオフを慎重に評価し、コードの可読性と保守性を考慮することが重要です。

一緒にIronPDF - 包括的なPDFソリューション以下の内容を日本語に翻訳してください:

のライブラリIron SoftwarePDFドキュメントの読み取りおよび生成のために、開発者は現代的なアプリケーションを開発するための高度なスキルを身に付けることができます。

< 以前
Html Agility Pack C# (開発者向けの動作方法)
次へ >
Bugsnag C#(開発者にとっての動作方法)