본문 바로가기
개발/기본) 기본기

기본기) 조건문 반전(Invert if statement)

by 테샤르 2024. 3. 20.

조건문 반전(Invert if statement)

 

Invert if statement 의 형태로 해당 조건에 만족하지 않는지를 먼저 판단하는 형태로

결국 해당 조건에 만족하지 않는 조건들이 먼저 선행되서

return을 처리해서 분기를 빠져나가는 형태로 구성되는 코드형태를 말한다.

휴먼이슈를 줄이고 좀더 가독성과 유지보수성을 높일수 있는 방법들이다.

 

반응형

<예시코드 1>

bool condition = true;

// Original if statement
if (condition)
{
    Console.WriteLine("Condition is true");
}
else
{
    Console.WriteLine("Condition is false");
}

// Inverted if statement
if (!condition)
{
    Console.WriteLine("Condition is false");
}
else
{
    Console.WriteLine("Condition is true");
}

< 예시 코드 >

public bool ValidateLogin(string username, string password)
{
    if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
    {
        return false;
    }

    // 사용자 이름과 비밀번호를 확인하는 로직(예: 데이터베이스 조회)
    // 예를 들어, 사용자가 유효한 경우 true를 반환하고 그렇지 않으면 false를 반환합니다.
    return true;
}

 

Guard Clause 에서 자주 많이 사용하는 형태지만 차이점으로는 Guard Clause는 해당하지 않는 조건으로 인해서 분기를 빠져나가지만 Invert if Statment 는 조건에따른 동작을 처리하는 형태인 경우에서 많이 사용한다. 

 

< 차이 예시 코드 >

// Guard Clause 예제
void ProcessData(int value)
{
    if (value < 0)
    {
        throw new ArgumentException("값은 음수일 수 없습니다", nameof(value));
    }

    // 주요 처리 로직이 여기에 이어집니다...
}

// 역전된 if 문 예제
void CheckAndProcessData(int value)
{
    if (value >= 0)
    {
        // 양수 값을 처리합니다
        Console.WriteLine("값은 음수가 아닙니다");
    }
    else
    {
        // 음수 값을 처리합니다
        Console.WriteLine("값은 음수입니다");
    }
}

 

★☆☆☆☆

 

반응형

댓글