Menu
Coddy logo textTech

Guard Clauses

Coddy C# 여정의 논리 및 흐름 섹션에 포함된 레슨 — 66개 중 19번째.

가드 클로즈(Guard clauses)는 메서드 시작 부분에서 예외 케이스나 유효하지 않은 입력을 확인하고, 해당 조건이 충족되면 조기에 반환하는 조건문입니다.

가드 절(guard clause)이 없는 메서드를 만들어 보겠습니다:

public void ProcessOrder(Order order)
{
    if (order != null)
    {
        // 주문 처리
        // 여기에 많은 코드 줄이 있음...
    }
}

이제 가드 클로즈(guard clause)를 사용하여 다시 작성해 보겠습니다:

public void ProcessOrder(Order order)
{
    if (order == null)
    {
        return; // 가드 클로즈 - order가 null인 경우 조기에 종료합니다
    }
    
    // 주문 처리
    // 여기에 많은 코드 라인이 위치함...
}

가드 클로저(Guard clauses)는 메서드 시작 부분에서 예외적인 케이스를 처리하고 중첩을 줄임으로써 가독성을 향상시킵니다.

challenge icon

챌린지

쉬움

두 개의 정수 numeratordenominator를 매개변수로 받는 DivideNumbers라는 메서드를 생성하세요.

  1. 분모가 0인지 확인하는 가드 클로즈(guard clause)를 추가하세요.
  2. 분모가 0이면 "Cannot divide by zero"를 출력하고 0을 반환하세요.
  3. 그렇지 않으면 numerator를 denominator로 나누고 그 결과를 반환하세요.

치트 시트

가드 클로즈(Guard clauses)는 메서드 시작 부분에서 예외적인 상황이나 유효하지 않은 입력을 확인하고, 해당 조건이 충족되면 조기에 반환하는 조건문입니다.

가드 클로즈가 없는 경우:

public void ProcessOrder(Order order)
{
    if (order != null)
    {
        // 주문 처리
        // 여기에 많은 코드 라인이 있음...
    }
}

가드 클로즈가 있는 경우:

public void ProcessOrder(Order order)
{
    if (order == null)
    {
        return; // 가드 클로즈 - order가 null인 경우 조기 종료
    }
    
    // 주문 처리
    // 여기에 많은 코드 라인이 있음...
}

가드 클로즈는 중첩을 줄이고 메서드 시작 부분에서 예외적인 상황을 처리함으로써 가독성을 향상시킵니다.

직접 해보기

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실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리 및 흐름의 모든 레슨