집 >백엔드 개발 >C#.Net 튜토리얼 >C#의 조건부 연산자
C#의 조건 연산자는 이름에서 알 수 있듯이 C# 프로그램에서 세 개의 피연산자를 사용하는 것을 의미합니다. 조건을 나타내는 데 사용되는 피연산자, 조건이 참인 경우의 값, 조건이 거짓인 경우의 값입니다. C#에서 조건 연산자를 표현하는 데 사용되는 기호는 '? : ’ (따옴표는 기호의 일부가 아니며 기호 구별을 묶는 데 사용되므로 무시됩니다.)
구문:
condition_expression ? first_expression : second_expression;
첫 번째 피연산자는? 앞에 지정됩니다. 조건식 평가에 대한 정의가 포함되어 있습니다. 평가 조건이 항상 부울 결과를 초래하도록 표현식을 정의할 때 주의가 필요합니다. 부울 표현식을 지정하거나 잘못된 표현식을 지정하면 컴파일 오류가 발생하지 않습니다. 기호 앞에 지정된 두 번째 표현식은 첫 번째 표현식에 정의된 조건이 true로 평가되는 경우 정의 또는 할당을 유지합니다. 따라서 첫 번째 표현식에서 결정된 반환 값이 true이면 두 번째 피연산자가 평가됩니다.
정의의 세 번째 피연산자에는 첫 번째 피연산자의 조건부 결과가 false로 평가되는 경우 표현식의 정의가 포함됩니다. 또는 조건부 연산자를 삼항 연산자 또는 인라인 if 연산자라고 합니다. C#에서 조건 연산자의 주요 용도는 코드 블록의 크기를 줄이는 데 사용되는 if-else 루프의 대안입니다. 조건 연산자의 또 다른 주요 장점은 분기 문 측면에서 컴파일 흐름을 변환하여 필요한 중첩된 if 문 사용을 줄여준다는 것입니다.
조건 연산자는 오른쪽 연관 원칙을 따릅니다. 즉, 작업이 오른쪽에서 왼쪽으로 그룹화됩니다. 또한 조건 연산자는 단일 피연산자 값 표현식만 평가하므로 컴파일 시간이 크게 단축됩니다. 두 번째와 세 번째 피연산자의 값은 할당, 증가, 감소 함수로 제한됩니다.
조건 연산자를 사용하여 기존 C# 프로그래밍에 대한 접근 방식을 이해해 보겠습니다.
먼저 일반 if else 문을 사용해 보겠습니다.-
코드:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int x = 10, y = 25; string result1; if (x > y) { result1 = "value of x is greater than y"; } else { result1 = "value of x is less than y"; } Console.WriteLine(result1); Console.ReadLine(); } } }
출력:
위 프로그램은 두 변수 x와 y의 값을 비교하고 변수에 할당된 값에 따라 조건 평가 시 x> y.
조건 연산자 →를 사용하여 위의 프로그램을 복제해 보겠습니다.
코드:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int x = 10, y = 25; string result1; //using the Ternary Operator (?:) for the comparison of x and y variable result1 = (x > y) ? "value of x is greater than y" : "value of x is less than y"; Console.WriteLine(result1); Console.ReadLine(); } } }
출력:
이제 조건 연산자가 if-else와 비교할 때 훨씬 덜 복잡한 자체 분기 또는 중첩 기준을 제공하여 중첩 if-else를 단순화하는 수단으로 사용되는 조건 연산자의 주요 용도를 식별하겠습니다. if 루프입니다.
동일한 내용을 이해하기 위해 먼저 일반적인 if-else if 프로그램을 고려해 보겠습니다.-
코드:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string comparisonResult; int a = 25, b = 50; if (a < b) { comparisonResult = "value of a is less than b "; } else if (a > b) { comparisonResult = " value of a is more than b"; } else { comparisonResult = "a and b are both equal in value "; } Console.WriteLine(comparisonResult); Console.ReadLine(); } } }
출력:
이제 조건 연산자를 사용하여 C#에서 동일한 논리가 어떻게 구현되는지 살펴보겠습니다.
코드:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string comparisonResult; int a = 25, b = 50; //Nested Ternary Operator (?:) comparisonResult = (a < b) ? "value of a is less than b" : (a > b) ? "value of a is more than b" : "a and b are both equal in value"; Console.WriteLine(comparisonResult); Console.ReadLine(); } } }
출력:
따라서 중첩된 조건 연산자를 사용하면 if-else if 문의 복잡성이 크게 줄어들기 때문에 두 가지 모두의 차이점을 알 수 있습니다. 또한 프로그램의 흐름을 이해하면 올바른 연관 원리로 커서 흐름을 알 수 있습니다
(a < b) ? "value of a is less than b" : (a > b) ? "value of a is more than b" : "a and b are both equal in value";
코드 블록은 A?와 같은 문과 별도의 색상을 사용하여 표시됩니다. ㄴ : ㄷ? D : E는 (A ? B : C) ? D : E.
조건 연산자는 조건 피연산자의 평가 값에 대해 별도의 할당(예: true 또는 false)이 있는 평가 및 할당 연산에 사용되는 세 가지 피연산자 연산자입니다. 조건부 연산자는 연산이 오른쪽에서 왼쪽으로 그룹화된다는 점을 나타내는 오른쪽 연관 원칙을 따릅니다. 조건부 연산자는 사용자 정의 유형을 사용하여 오버로드될 수 없으며 평가를 위해 bool 값으로 제한됩니다. 조건 연산자는 긴 if-else if 문에 가장 적합한 대체 방법을 제공하고 분기된 문 평가 기회를 제공하여 컴파일 시간을 줄여줍니다.
위 내용은 C#의 조건부 연산자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!