在 C# 中退出函式

Abdullahi Salawudeen 2023年1月30日 2022年4月20日
  1. 在 C# 中使用 break 語句退出函式
  2. 在 C# 中使用 continue 語句退出函式
  3. 在 C# 中使用 goto 語句退出函式
  4. 在 C# 中使用 return 語句退出函式
  5. 在 C# 中使用 throw 語句退出函式
在 C# 中退出函式

本文將介紹如何在 C# 中退出函式。

跳轉語句一般用於控制程式執行的流程。換句話說,跳轉語句在執行程式中無條件地將控制從一個點轉移到另一個點。

進一步的討論可通過 this reference 獲得。

以下是分類為 Jump 語句的 C# 中的五條語句。

  1. break 語句;
  2. continue 語句;
  3. goto 語句;
  4. return 語句;
  5. throw 語句。

在 C# 中使用 break 語句退出函式

break 語句在它存在的地方停止迴圈。然後,如果可用,控制元件將傳遞到終止語句之後的語句。

如果巢狀迴圈中存在 break 語句,它只會終止那些包含 break 語句的迴圈。

例子:

// C# program to illustrate the
// use of break statement
using System;

class Test {
    // Main Method
    static public void Main()
    {
        int[] Numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
        foreach (int number in Numbers)
        {
            //print only the first 10 numbers
            if (number > 10)
            {
                break;
            }
            Console.Write($"{number} ");
        }
    }
}

輸出:

1 2 3 4 5 6 7 8 9 10

在 C# 中使用 continue 語句退出函式

當某個條件為真時,continue 語句會跳過程式碼塊的執行。與 break 語句不同,continue 語句將控制轉移到迴圈的開頭。

下面是使用 foreach 方法的程式碼示例。

// C# program to illustrate the
// use of continue statement
using System;

class Test {
    // Main Method
    static public void Main()
    {
        int[] Numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
        foreach (int oddNumber in Numbers)
        {
            //print only the odd numbers 10 numbers
            if (oddNumber %2 == 0)
            {
                continue;
            }
            Console.Write($"{oddNumber} ");
        }
    }
}

輸出:

1 3 5 7 9 11 13 15 17 19

在 C# 中使用 goto 語句退出函式

我們使用 goto 語句將控制轉移到程式中的標記語句。標籤必須是放在 goto 語句之前的有效識別符號。

換句話說,它強制執行標籤上的程式碼。

在下面的示例中,goto 語句強制執行案例 5。

// C# program to illustrate the
// use of goto statement
using System;

class Test {
    // Main Method
    static public void Main()
    {
        int age = 18;
        switch (age) {
        case 5:
            Console.WriteLine("5yrs is less than the recognized age for adulthood");
            break;
        case 10:
            Console.WriteLine("Age 10 is still underage");
            break;
        case 18:
            Console.WriteLine("18yrs! You are now an adult and old enough to drink");
            // goto statement transfer
            // the control to case 5
            goto case 5;
        default:
            Console.WriteLine("18yrs is the recognized age for adulthood");
            break;
        }
    }
}

輸出:

18yrs! You are now an adult and old enough to drink
5yrs is less than the recognized age for adulthood

在 C# 中使用 return 語句退出函式

return 語句終止它出現的函式執行,然後將控制權返回給呼叫方法的結果(如果可用)。但是,如果函式沒有值,則使用 return 語句而不使用表示式。

例子:

// C# program to illustrate the
// use of return statement
using System;

class Test {
    // Main Method
    static public void Main()
    {
        int[] Numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
        foreach (int number in Numbers)
        {
            //print only the first 10 numbers
            if (number > 10)
            {
                return;
            }
            return;
            Console.Write($"{number} ");
        }
    }
}

輸出:

No output

在 C# 中使用 throw 語句退出函式

異常表明發生了錯誤或改變了程式的執行。throw 語句使用 new 關鍵字建立一個有效 Exception class 的物件。

所有 Exception 類都有 Stacktrace 和 Message 屬性。

請注意,有效異常必須從 Exception 類派生。有效的異常類包括 ArgumentExceptionInvalidOperationExceptionNullReferenceExceptionIndexOutOfRangeException

進一步的討論可通過 this reference 獲得。

例子:

// C# program to illustrate the
// use of throw statement
using System;

class Test {
    // Main Method
    static public void Main()
    {
        int[] Numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 							19, 20 };
        foreach (int number in Numbers)
        {
            // using try catch block to
            // handle the Exception
            try
            {
                //print only the first 10 numbers
                if (number > 10)
                {
                    Console.WriteLine();
                    throw new NullReferenceException("Number is greater than 10");
                }
                Console.Write($"{number} ");
            }
            catch(Exception exp)
            {
                Console.WriteLine(exp.Message );
                return;
            }
        }
    }
}

輸出:

1 2 3 4 5 6 7 8 9 10
Number is greater than 10
Abdullahi Salawudeen avatar Abdullahi Salawudeen avatar

Abdullahi is a full-stack developer and technical writer with over 5 years of experience designing and implementing enterprise applications. He loves taking on new challenges and believes conceptual programming theories should be implemented in reality.

LinkedIn GitHub

相關文章 - Csharp Function