Menu
Coddy logo textTech

ガード節

CoddyのC#ジャーニー「ロジックとフロー」セクションの一部。レッスン 19/66。

Guard clauses は、method の冒頭でエッジケースや無効な inputs を check し、それらの条件が満たされた場合に early に return する条件文です。

ガード句を使わずにメソッドを作成してみましょう:

public void ProcessOrder(Order order)
{
    if (order != null)
    {
        // 注文を処理する
        // ここに多くのコード行が...
    }
}

では、ガード句を使って書き直してみましょう:

public void ProcessOrder(Order order)
{
    if (order == null)
    {
        return; // ガード節 - order が null の場合は早期に終了
    }
    
    // order を処理する
    // ここに多くのコード行があります...
}

Guard clause は、ネストを減らし、method の冒頭で例外的なケースを処理することで、可読性を向上させます。

challenge icon

チャレンジ

簡単

numeratordenominator という 2 つの整数を受け取る、DivideNumbers という名前のメソッドを作成します。

  1. denominator がゼロかどうかを確認する Guard clause を追加します。
  2. denominator がゼロの場合は、「Cannot divide by zero」と出力して 0 を return します。
  3. それ以外の場合は、numerator を denominator で割り、result を return します。

自分で試してみよう

using System;

public class Program
{
    public static int DivideNumbers(int numerator, int denominator)
    {
        // ここにコードを書いてください
    }
    
    public static void Main()
    {
        // コンソールから入力を読み取る
        int numerator = Convert.ToInt32(Console.ReadLine());
        int denominator = Convert.ToInt32(Console.ReadLine());
        
        // DivideNumbersメソッドを呼び出す
        int result = DivideNumbers(numerator, denominator);
        
        // 結果を出力する
        Console.WriteLine(result);
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン

自分で練習してみよう: C#オンラインコンパイラ