English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# 삼항 연산자

C#은 결정 연산자를 포함합니다 ? :또는 삼항 연산자로 불립니다. 이는 if입니다-else 조건의 약칭.

문법:

condition ? 문장 1 : 문장 2

삼항 연산자는 부울 조건으로 시작합니다. condition의 값이 true라면, ? 다음의 문장이 실행됩니다. 1 문장, 그렇지 않으면 : 다음의 두 번째 문장이 실행됩니다.

다음 예제는 삼항 연산자를 보여줍니다.

int x = 20, y = 10;
var result = x > y ? "x가 y보다 큽니다" : "x가 y보다 작습니다";
Console.WriteLine(result);
출력:
x가 y보다 큽니다

위의 조건 표현식 x > y는 true를 반환하므로 ? 다음의 첫 번째 문장이 실행됩니다.

다음 문장은 두 번째 문장을 실행합니다.

int x = 10, y = 100;
var result = x > y ? "x가 y보다 큽니다" : "x가 y보다 작습니다";
Console.WriteLine(result);
출력:
x가 y보다 작습니다

따라서, 삼항 연산자는 if else 문의 약칭입니다. 위의 예제는 다음과 같이 if else 조건으로 다시 작성할 수 있습니다.

int x = 10, y = 100;
if (x > y){
    Console.WriteLine("x가 y보다 큽니다");
}else{
    Console.WriteLine("x가 y보다 작습니다");
}
출력:
x가 y보다 큽니다

내부 삼항 연산자

내부 삼항 연산자는 조건 표현식을 두 번째 문장으로 사용하여 구현됩니다.

int x = 10, y = 100;
string result = x > y ? "x大于y": ; 
                    x < y ? "x는 y보다 작습니다" : 
                        x == y ? "x와 y가 같습니다" : "결과가 없습니다";
Console.WriteLine(result);

삼항 연산자는 오른쪽 연관성을 가집니다. 표현식 a ? b : c ? d : e의 계산 결과는 a ? b : (c ? d : e)입니다. 그러나 (a ? b : c) ? d : e가 아닙니다.

var x = 2, y = 10;
var result = x * 3 > y ? x : y > z? y : z;
Console.WriteLine(result);