연습 - 조건부 연산자 구현
- 7분
고객의 구매가 프로모션 할인에 적용되는지 여부를 신속하게 확인해야 한다고 가정합니다. 프로모션에 대한 세부 정보는 구매 값이 1000유로보다 클 때 100유로 할인을 받을 수 있음을 나타냅니다. 구매 금액이 1000유로 이하인 경우 구매는 50유로의 할인을 받을 수 있습니다.
if ... elseif ... else 분기 구문을 사용하여 이 비즈니스 규칙을 표현할 수 있지만 조건부 연산자를 사용하여 프로모션 할인 자격을 평가하는 것이 더 나은 선택일 수 있습니다. 조건부 연산자는 코드 몇 줄을 절약하는 간결한 형식을 사용하기 때문에 해당 코드의 의도를 더 명확하게 표현할 수 있습니다.
조건부 연산자란 무엇인가요?
조건부 연산자?:는 부울 식을 평가하고 부울 식이 True인지 False인지에 따라 두 결과 중 하나를 반환합니다. 조건부 연산자는 일반적으로 3개로 구성된 조건부 연산자라고 합니다.
기본적인 형태는 다음과 같습니다.
<evaluate this condition> ? <if condition is true, return this value> : <if condition is false, return this value>
프로모션 할인 시나리오에 조건부 연산자를 어떻게 적용할지 알아보세요. 목표는 할인율을 표시하는 메시지를 고객에게 표시하는 것입니다. 할인 금액은 구매에 1,000유로 이상을 지출했는지 여부에 따라 결정됩니다.
조건부 연산자를 사용하는 코드 추가
Visual Studio Code에서 빈 Program.cs 파일이 열려 있는지 확인합니다. 필요한 경우 Visual Studio Code를 열고 다음 단계를 완료하여 편집기에서 Program.cs 파일을 준비합니다.
- 파일 메뉴에서 폴더 열기를 선택합니다.
- 폴더 열기 대화 상자를 사용하여 CsharpProjects 폴더를 엽니다.
- Visual Studio Code 탐색기 패널에서 Program.cs를 선택합니다.
- Visual Studio Code 선택 메뉴에서 모두 선택을 선택한 다음 Delete 키를 누릅니다.
Visual Studio Code 편집기에 다음 코드를 입력합니다.
int saleAmount = 1001; int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {discount}");Visual Studio Code 파일 메뉴에서 저장을 선택합니다.
코드를 빌드하거나 실행하기 전에 Program.cs 파일을 저장해야 합니다.
탐색기 패널에서 TestProject 폴더 위치에서 터미널을 열려면 TestProject를 마우스 오른쪽 단추로 클릭한 다음 통합 터미널에서 열기를 선택합니다.
이제 명령 프롬프트를 표시하는 터미널 패널이 열립니다. 명령 프롬프트에는 TestProject 폴더 위치에 대한 폴더 경로가 표시되어야 합니다.
터미널 명령 프롬프트에서 코드를 실행하려면 dotnet run을 입력한 다음 Enter 키를 누릅니다.
코드를 실행하면 다음과 같은 출력이 표시됩니다.
Discount: 100
조건부 연산자 인라인 사용
임시 변수 discount를 제거하면 이 코드를 훨씬 더 간결하게 만들 수 있습니다.
다음과 같이 Visual Studio Code 편집기에서 코드를 업데이트합니다.
int saleAmount = 1001; // int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {(saleAmount > 1000 ? 100 : 50)}");Visual Studio Code 파일 메뉴에서 저장을 선택합니다.
터미널 명령 프롬프트에서 코드를 실행하려면 dotnet run을 입력한 다음 Enter 키를 누릅니다.
출력은 동일합니다.
업데이트된
Console.WriteLine()문을 검사해 보세요.전체 조건부 연산자 문을 괄호로 래핑해야 합니다. 괄호는 조건을 평가한 결과(saleAmount > 1000)가 아닌 조건부 결과를 표시하려는 사용자의 의도를 런타임이 이해하도록 합니다.
참고
이 특정 예제는 간결하고 무엇이 가능한지를 보여 주지만 읽기에는 조금 더 어렵습니다. 특히 코드의 전반적인 가독성에 부정적인 영향을 미치는 경우 코드 줄을 결합하는 것이 항상 좋은 것은 아닙니다. 이 경우 주관적인 판단을 내려야 하기도 합니다.
요약
조건부 연산자에 대한 다음 사실을 명심해야 합니다.
- 조건부 연산자를 사용하여 코드 크기를 줄일 수 있지만 결과 코드를 쉽게 읽을 수 있는지 확인해야 합니다.
- 이진 조건을 기반으로 하는 값을 반환해야 하는 경우 조건부 연산자를 사용할 수 있습니다. 코드는 조건이 true로 평가될 때 첫 번째 옵션을 반환하고 조건이 false로 평가될 때 두 번째 옵션을 반환합니다.