[C++] 3항연산자란
3항연산자의 개념
현직에서 if문이 길어지면 가독성이 떨어지고 불편할 때가 있습니다.
그때 if문을 간단해 대체할 수 있는것이 삼항연산자이며,
이 삼항연산자는 유일하게 피연산자를 3개나 가지는 조건 연산자 입니다.
[기본 문법]
조건 ? 참일경우 실행 : 거짓일 경우 실행 ;
- ? 앞의 조건식에 따라 결과 값이 참(true)이면 : 앞의 것을, 거짓(false)일 경우 : 뒤의 것을 실행합니다.
코드 및 주석
[기본] 아래와 같이 기본적인 문법은 매우 간단합니다.
int main()
{
int a = 10, b = 15;
(a < b) ? printf("a가 더 크다") : printf("b가 더 크다");
}
? 앞에 있는 조건식 이 참(true)일경우 printf("a가 더 크다")
가 실행되며,
거짓(false)일 경우 printf("b가 더 크다")
가 실행 됩니다.
[응용]
- 실행할 내용이 변수에 값을 넣어줄 때(변수 1개)
int main()
{
int a = 10, b = 15, c = 0, d = 0;
c = (a > b) ? 1 : 0;
printf("c = %d, d = %d", c, d);
}
- 실행할 내용이 서로 다른 변수에 값을 넣어줄 때
int main() { int a = 10, b = 15, c = 0, d = 0; (a < b) ? (c = 5) : (d = 6); printf("c = %d, d = %d", c, d); }
- 실행할 내용이 변수에 값을 넣어줄 때(변수 여러개)
int main() { int a = 10, b = 15, c = 0, d = 0; (a > b) ? (c = 38) : (c = 75, d = 20); printf("c = %d, d = %d", c, d); }
- 기타 등등
int main() { int a = 10, b = 15, c = 0, d = 0; (a < b) ? (printf("3항연산자 \n"), c = a, d = 72) : (c = 13); printf("c = %d, d = %d", c, d); }