透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
制御フロー文はプログラミングにおいて非常に重要です。それはプログラム内の命令の実行順序を決定するからです。 C# では、ループを制御するための3つの基本的なステートメントは「continue」、「break」、「goto」です。 これらの文はプログラマーにループ内の実行フローを変更する能力を提供し、コードの効率と可読性を向上させます。 この記事では、C#のcontinueメソッドとbreakメソッドの詳細について、構文、用途、およびベストプラクティスを探ります。 この記事の後半では、PDFドキュメントを読み書きするためのIronPDF - 強力なC# PDFライブラリについても学びます。提供元はIron Softwareです。
continue ステートメントは、ループ構造内で使用され、残りのコードブロックをスキップし、ループの次の繰り返しに進むために使われます。これは本質的に、プログラム制御に現在の反復の残りのコードをスキップして次の反復に移るよう指示します。
continue;
continue;
continue
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
この例では、i が 5 のときに continue 文が実行され、そのイテレーションのループ内の残りのコードがスキップされます。 その結果、数字5は印刷されず、ループは次の反復処理に進みます。
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
この例では、ループがnumbers配列を反復処理します。 6という数字に遭遇したとき、breakステートメントが実行され、ループが早期に終了します。 その結果、1から5までの数字のみが印刷されます。
C# の goto ステートメントは、同じメソッド内、同じ switch ステートメント内、または同じループ内の指定されたラベルに制御を移す方法を提供します。goto はジャンプステートメントの実行フローを変更するための強力なツールである一方、コードの可読性と保守性を低下させる可能性があるため、現代のプログラミング手法ではしばしば推奨されません。 しかし、gotoが効果的かつ安全に使用される状況もあります。
C#におけるgotoステートメントの構文は簡単です:
goto label;
goto label;
GoTo label
ラベルは、識別子の後にコロン(:)が続くもので、コード内のターゲットの位置を示します。
特定の条件が満たされた場合に、ネストされたループを早期に終了したいと考えているシナリオを考えてください。 これを実現するには、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.")
この例では、goto文が条件 i * j > 10 が満たされた時にexitLoopラベルに制御を移し、ネストされたループを実質的に脱出します。
IronPDFは、Iron Softwareによって開発された強力なC# PDFライブラリであり、.NETプロジェクトでPDFを扱うためのオールインワンソリューションを提供します。 PDFドキュメントの作成、編集、エクスポート、セキュリティ、読み込み、操作が必要な場合でも、IronPDFはすべてをカバーしています。 ここでは、いくつかの主要な機能と使用例を紹介します:
HTML から PDF への変換: HTML コンテンツをシームレスに PDF 形式に変換します。 HTML、MVC、ASPX、さらには画像からPDFを生成することができます。
PDFに署名、編集、読み取り: 50以上の機能を備えたIronPDFは、PDFファイルに署名、編集、コンテンツの抽出が可能です。 デジタル署名を追加する場合でも、既存のPDFを修正する場合でも、IronPDFはそれを簡単にします。
クロスプラットフォーム対応: IronPDFは、C#、F#、VB.NET用に設計されており、.NET Core、.NET Standard、.NET Frameworkなど、さまざまな.NETバージョンで動作します。 これはまた、Java、Node.js、およびPythonでも利用できます。
互換性と環境:
.NETバージョン: C#、VB.NET、およびF#をサポートします。
プロジェクトタイプ: ウェブ (Blazor & WebForms), デスクトップ (WPF & MAUI), コンソールアプリケーションに対応します。
アプリ環境: Windows、Linux、Mac、Docker、Azure、AWSなどに対応。
IDEs: Microsoft Visual Studio および JetBrains Rider とシームレスに統合されます。
PDF標準と編集:
さまざまなPDFバージョン(1.2 - 1.7)、PDF/UA、およびPDF/Aに対応しています。
PDFファイルのプロパティ設定、セキュリティ、および圧縮を行います。
メタデータ、リビジョン履歴、および文書構造を編集する。
パフォーマンス最適化:
効率的なPDF生成のための完全なマルチスレッドおよび非同期サポート。
IronPDFライブラリを把握したところで、IronPDFとcontinueステートメント、breakステートメント、gotoステートメントを使用するアプリケーションを書いてみましょう。
まずは、Visual Studio コンソール アプリケーションを作成しましょう。
プロジェクト名と場所を提供してください。
次のステップとして、必要な .NET バージョンを選択し、[作成] をクリックしてください。
以下のコマンドを使用してIronPDFをインストールします。
dotnet add package IronPdf --version 2024.4.2
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
最初に、PDFドキュメントで使用するコンテンツを作成しています。
私たちはコンテンツをHTMLドキュメントとして準備します。
私たちは、1から10までを出力し、5をスキップするためにforループ内でcontinue文を使用します。
また、1から7まで印刷して中断するためにbreakステートメントを使用します。
明確さと可読性: ほとんどの場合、break、continue やネストされたループのような構造化された制御フロー文を使用することで、コードをより可読で理解しやすくすることができます。 goto 文は、特に大規模なコードベースや過度に使用された場合に、コードを追跡しにくくすることがあります。
不本意な結果を避ける: goto の誤用はスパゲッティコードにつながり、プログラムの振る舞いを考えるのが難しくなる可能性があります。 gotoを慎重に使用し、その使用が明確でよく文書化されていることを確認することが不可欠です。
エラーハンドリング: goto の一般的な使用例の一つに、クリーンアップやエラーハンドリングのルーチンにジャンプするエラーハンドリングシナリオがあります。しかし、現代のC#コードベースでは、より構造化され読みやすいアプローチを提供するエラーハンドリングのために、構造化例外処理(try-catch-finally)を使用することが多いです。
試用開発者ライセンスは試用ライセンスを取得できます。
appSettings.jsonファイルに示されているKeyを置き換えてください。
{
"IronPdf.License.LicenseKey": "The Key Here"
}
結論として、continue および break メソッドは、C# においてループの実行を制御するための不可欠なツールです。 これらのステートメントをコードに戦略的に組み込むことで、その効率性、可読性、および保守性を向上させることができます。 C#のgotoステートメントは実行の流れを変更するメカニズムを提供しますが、その使用は慎重に行うべきです。 ほとんどの場合、break、continue、またはネストされたループのような構造化された制御フロー文は、より明確で保守しやすいソリューションを提供します。 ただし、特定のエラー処理の状況などで、gotoが効果的かつ安全に使用できるニッチなシナリオがあります。 他のプログラミング構造と同様に、gotoを使用するかどうかを決定する際には、トレードオフを慎重に評価し、コードの可読性と保守性を考慮することが重要です。
IronPDF - Comprehensive PDF Solutions ライブラリーを Iron Software と一緒に使用してPDFドキュメントを読み取り、生成することで、開発者は最新のアプリケーションを開発するための高度なスキルを得ることができます。