跳過到頁腳內容
.NET幫助

C# Continue(對於開發者的運行原理)

控制流語句在編程中至關重要,因為它們決定了程序中指令的執行順序。 在C#中,用於控制循環的三個基本語句是「continue」、「break」和「goto」。 這些語句為程序員提供了在循環中改變執行流程的能力,提高了代碼的效率和可讀性。 在本文中,我們深入探討C#中continuebreak方法的複雜性,探究它們的語法、應用及最佳實踐。 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語句用於提前退出循環。 當遇到時,它終止循環的執行,無論循環條件如何。 它通常用來在特定條件滿足時提早退出循環,如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
$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種功能,IronPDF允許你對PDF文件進行簽名、編輯和提取內容。 無論是添加數字簽名還是修改現有PDF,IronPDF都使得操作變得簡單。
  3. 跨平台支持:IronPDF設計用于C#、F#和VB.NET,並且運行於多種.NET版本,包括.NET Core、.NET Standard和.NET Framework。 它也可供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無縫集成。
    • 操作系統和處理器:運行於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:在第一個循環中,我們使用continue語句在生成1到10的數字時跳過數字5。
  3. 使用break:在第二個循環中,我們使用break語句在到達數字7時停止循環。
  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文件中的Key。

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

結論

總之,continuebreak方法是控制C#中循環執行的不可或缺的工具。 通過戰略性地將這些語句整合到你的代碼中,可以提高其效率、可讀性和可維護性。 雖然C#中的goto語句提供了一種改變執行流程的機制,但其使用應謹慎。 在大多數情況下,結構化控制流語句如breakcontinue或嵌套循環提供更清晰和易於維護的解決方案。 然而,在一些特殊的情況下,goto仍可以有效且安全地使用,例如某些錯誤處理場景。 如同任何編程構建一樣,在決定是否使用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 創建、編輯和轉換。

使用全面的 PDF 庫在 C# 中有什麼好處?

像 IronPDF 這樣的全面 PDF 庫通過提供強大的 PDF 創建、編輯和轉換功能來增強 C# 應用。它支持 HTML 到 PDF 的轉換,並提供跨平台支持,使其成為開發者的一個多功能工具。

控制流程語句如何提升 C# 中的 PDF 生成?

控制流程語句如 'continue' 和 'break' 可用於在 PDF 生成期間管理循環的執行,允許開發者在使用 IronPDF 時根據特定條件選擇性地添加或停止內容生成。

IronPDF 的相容性特性有哪些?

IronPDF 兼容各種 .NET 版本,包括 .NET Core、.NET Standard 和 .NET Framework。它支持多種語言如 C#、VB.NET 和 F#,並與如 Microsoft Visual Studio 和 JetBrains Rider 等 IDE 集成。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。