Menu
Coddy logo textTech

Short-Circuit Evaluation

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

C#에서 단락 평가(Short-circuit evaluation)는 논리 AND(&&)와 OR(||) 연산자의 두 번째 피연산자를 필요한 경우에만 평가하는 최적화 기법입니다.

논리 AND(&&)의 경우, 첫 번째 피연산자가 false이면 두 번째 피연산자에 관계없이 결과는 항상 false입니다:

bool result = false && SomeMethod();

이 예제에서 SomeMethod()는 첫 번째 피연산자가 이미 false이기 때문에 호출되지 않습니다.

논리 OR(||)의 경우, 첫 번째 피연산자가 true이면 두 번째 피연산자에 관계없이 결과는 항상 true입니다:

bool result = true || SomeMethod();

여기서, SomeMethod()는 첫 번째 피연산자가 이미 true이기 때문에 호출되지 않습니다.

이 동작은 오류를 방지하는 데 사용할 수 있으며, 예를 들어 객체의 속성에 접근하기 전에 해당 객체가 null인지 확인하는 경우입니다:

// Safe - if student is null, the right side won't evaluate
if (student != null && student.Grade > 70)
{
    Console.WriteLine("Student passed!");
}
challenge icon

챌린지

쉬움

ProcessUserInput이라는 이름의 메서드를 생성하세요. 이 메서드는 두 개의 인수를 받습니다:

  • 문자열 (input)
  • 정수 (minLength)

메서드는 다음을 수행해야 합니다:

  1. input이 null이 아닌지 확인
  2. input 길이가 최소 minLength 이상인지 확인
  3. 두 조건이 모두 참인 경우에만 "Valid input: " 다음에 input을 출력
  4. 어느 한 조건이라도 실패하면 "Invalid input"을 출력

잠재적인 NullReferenceException을 방지하기 위해 단락 평가를 사용하세요.

치트 시트

단락 평가(Short-circuit evaluation)는 논리 연산자의 두 번째 피연산자를 필요할 때만 평가하는 최적화 기법입니다.

논리 AND(&&)의 경우, 첫 번째 피연산자가 false이면 두 번째 피연산자는 평가되지 않습니다:

bool result = false && SomeMethod(); // SomeMethod() won't be called

논리 OR(||)의 경우, 첫 번째 피연산자가 true이면 두 번째 피연산자는 평가되지 않습니다:

bool result = true || SomeMethod(); // SomeMethod() won't be called

이것은 조건을 순서대로 확인함으로써 오류를 방지합니다:

// Safe - if student is null, student.Grade won't be accessed
if (student != null && student.Grade > 70)
{
    Console.WriteLine("Student passed!");
}

직접 해보기

using System;

class ProcessUserInput
{
    public static void processUserInput(string input, int minLength)
    {
        // 여기에 코드를 작성하세요
    }
}
quiz icon실력 점검

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

논리 및 흐름의 모든 레슨