>  기사  >  백엔드 개발  >  C#의 조건부 연산자

C#의 조건부 연산자

王林
王林원래의
2024-09-03 15:08:32960검색

C#의 조건 연산자는 이름에서 알 수 있듯이 C# 프로그램에서 세 개의 피연산자를 사용하는 것을 의미합니다. 조건을 나타내는 데 사용되는 피연산자, 조건이 참인 경우의 값, 조건이 거짓인 경우의 값입니다. C#에서 조건 연산자를 표현하는 데 사용되는 기호는 '? : ’ (따옴표는 기호의 일부가 아니며 기호 구별을 묶는 데 사용되므로 무시됩니다.)

구문:

condition_expression ? first_expression : second_expression;

조건 연산자를 어떻게 정의하나요?

첫 번째 피연산자는? 앞에 지정됩니다. 조건식 평가에 대한 정의가 포함되어 있습니다. 평가 조건이 항상 부울 결과를 초래하도록 표현식을 정의할 때 주의가 필요합니다. 부울 표현식을 지정하거나 잘못된 표현식을 지정하면 컴파일 오류가 발생하지 않습니다. 기호 앞에 지정된 두 번째 표현식은 첫 번째 표현식에 정의된 조건이 true로 평가되는 경우 정의 또는 할당을 유지합니다. 따라서 첫 번째 표현식에서 결정된 반환 값이 true이면 두 번째 피연산자가 평가됩니다.

정의의 세 번째 피연산자에는 첫 번째 피연산자의 조건부 결과가 false로 평가되는 경우 표현식의 정의가 포함됩니다. 또는 조건부 연산자를 삼항 연산자 또는 인라인 if 연산자라고 합니다. C#에서 조건 연산자의 주요 용도는 코드 블록의 크기를 줄이는 데 사용되는 if-else 루프의 대안입니다. 조건 연산자의 또 다른 주요 장점은 분기 문 측면에서 컴파일 흐름을 변환하여 필요한 중첩된 if 문 사용을 줄여준다는 것입니다.

조건 연산자는 오른쪽 연관 원칙을 따릅니다. 즉, 작업이 오른쪽에서 왼쪽으로 그룹화됩니다. 또한 조건 연산자는 단일 피연산자 값 표현식만 평가하므로 컴파일 시간이 크게 단축됩니다. 두 번째와 세 번째 피연산자의 값은 할당, 증가, 감소 함수로 제한됩니다.

C# 조건 연산자의 예

조건 연산자를 사용하여 기존 C# 프로그래밍에 대한 접근 방식을 이해해 보겠습니다.

예시 #1

먼저 일반 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();
}
}
}

출력:

C#의 조건부 연산자

위 프로그램은 두 변수 x와 y의 값을 비교하고 변수에 할당된 값에 따라 조건 평가 시 x> y.

예시 #2

조건 연산자 →를 사용하여 위의 프로그램을 복제해 보겠습니다.

코드:

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();
}
}
}

출력:

C#의 조건부 연산자

이제 조건 연산자가 if-else와 비교할 때 훨씬 덜 복잡한 자체 분기 또는 중첩 기준을 제공하여 중첩 if-else를 단순화하는 수단으로 사용되는 조건 연산자의 주요 용도를 식별하겠습니다. if 루프입니다.

예시 #3

동일한 내용을 이해하기 위해 먼저 일반적인 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#의 조건부 연산자

예시 #4

이제 조건 연산자를 사용하여 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();
}
}
}

출력:

C#의 조건부 연산자

따라서 중첩된 조건 연산자를 사용하면 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:C#의 논리 연산자다음 기사:C#의 논리 연산자