C# で関数を終了する

Abdullahi Salawudeen 2024年2月16日
  1. break ステートメントを使用して、C# の関数を終了する
  2. continue ステートメントを使用して、C# の関数を終了する
  3. goto ステートメントを使用して、C# の関数を終了する
  4. return ステートメントを使用して、C# の関数を終了する
  5. throw ステートメントを使用して、C# の関数を終了する
C# で関数を終了する

この記事では、C# で関数を終了する方法を紹介します。

ジャンプステートメントは通常、プログラム実行のフローを制御するために使用されます。つまり、ジャンプステートメントは、実行中のプログラムのあるポイントから別のポイントに無条件に制御を移します。

詳細については、このリファレンスを参照してください。

以下は、C# でジャンプ文に分類される 5つの文です。

  1. break ステートメント;
  2. continue ステートメント;
  3. goto ステートメント;
  4. return ステートメント;
  5. throw ステートメント。

break ステートメントを使用して、C# の関数を終了する

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

continue ステートメントを使用して、C# の関数を終了する

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

goto ステートメントを使用して、C# の関数を終了する

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

return ステートメントを使用して、C# の関数を終了する

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

throw ステートメントを使用して、C# の関数を終了する

例外は、エラーが発生したか、プログラムの実行が変更されたことを示します。throw ステートメントは、new キーワードを使用して有効な Exception クラスのオブジェクトを作成します。

すべての例外クラスには、Stacktrace プロパティと Message プロパティがあります。

有効な例外は、Exception クラスから派生する必要があることに注意してください。有効な Exception クラスには、ArgumentExceptionInvalidOperationExceptionNullReferenceException、および IndexOutOfRangeException が含まれます。

詳細については、このリファレンスを参照してください。

例:

// 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