.NET 幫助

C#繼續(對開發人員的工作方式)

發佈 2024年4月29日
分享:

介紹

流程控制語句在程式設計中至關重要,因為它們決定了程式中指令的執行順序。 在 C# 中,用於控制迴圈的三個基本語句是 'continue'、'break' 和 'goto'。 這些語句為程式設計師提供了改變迴圈內執行流程的能力,提高了程式碼的效率和可讀性。 在本文中,我們深入探討 C# 中 continuebreak 方法的複雜性,並探索其語法、應用及最佳實踐。 在文章的後面,我們還將了解IronPDF - 強大的 C# PDF 庫Iron Software讀取和寫入 PDF 文件。

理解 '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 語句而跳過了 case 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 語句提供了一種將控制轉移到同一方法內、同一 switch 語句內或同一迴圈內指定標籤的方法。儘管 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 SoftwareIronPDF - 全面的 PDF 庫

IronPDF由Iron Software開發的,是一個強大的C# PDF庫,為在.NET項目中使用PDF提供了一體化解決方案。 無論您需要創建、編輯、導出、保護、加載或操作 PDF 文件,IronPDF 都能滿足您的需求。 以下是一些主要功能和使用案例:

  1. HTML 到 PDF 轉換:將 HTML 內容無縫轉換為 PDF 格式。 您可以從 HTML、MVC、ASPX 甚至圖像生成 PDF。

  2. 簽署、編輯和閱讀PDF:IronPDF擁有超過50個功能,可讓您簽署、編輯和提取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#。

    • 專案類型:適用於網路(Blazor 和 WebForms),桌面(WPF & MAUI),和控制台應用程式。

    • 應用環境:兼容 Windows、Linux、Mac、Docker、Azure、AWS 及更多。

    • IDEs:與 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語句。

使用繼續語句生成 PDF 文件

首先,我們來創建一個 Visual Studio 主控台應用程式。

C# 繼續(如何為開發人員工作):圖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. 此外,我們使用 break 語句來從 1 打印到 7 並中斷。

  5. 然後,我們使用 ChromePdfRenderer 物件將 HTML 文件儲存為 PDF 文件。

輸出

C# 繼續(對開發者的運作方式):圖 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 時,權衡取捨並考慮程式碼的可讀性和可維護性是至關重要的。

一起與IronPDF - 全面的 PDF 解決方案圖書館由Iron Software為了讀取和生成 PDF 文件,開發人員可以獲得開發現代應用程序的高級技能。

< 上一頁
Html Agility Pack C#(它對開發人員的工作方式)
下一個 >
Bugsnag C#(它如何為開發人員工作)

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >