3개의 요소로 이루어지는 3항(ternary) 연산자는 "조건식 ? (참일 때의 값) : (거짓일 때의 값)” 의 형태로 사용하는 연산자이다.
3항 연산자는 자주 사용되지는 않지만, 복잡한 계산식이나 조건 처리, 비교 구조를 매우 간단히 표현할 수 있게 해준다.
잘 사용해보면 나름대로의 재미와 묘미가 있는 연산자이다.
특히, 보다 짧은 코드로 문제를 해결하려고 하는 숏 코딩(coding)에서는 빠질 수 없는 요소이다.
"똑같이 해결할 수 있는 프로그램이지만, 때로는 아주 적은 소스코드 양으로 풀어내는 것을 매우 즐기는 숏 코더들이 있다."
숏 코딩은 일종의 재미이기는 하지만, 프로그래밍언어의 밑바닥 기초, 세세한 처리 과정에 대한 이해, 컴파일러의 소스코드 해석과 변환 등에 대한 경험과 지식이 필요하다.
따라서 3항 연산자 ? 를 중첩해(괄호로 묶는 등..) 이용하면 여러 값들을 순서대로 비교해 가장 큰/작은 값을 계산할 수 있다.
예를 들어
(a>b ? a:b)>c ? (a>b ? a:b):c 의 계산식은
a, b, c 의 값 중 가장 큰 값으로 계산된다.
여러 가지 연산자가 동시에 사용된 식이 있을 때, 어떤 우선순위에 따라 순서대로 계산이 되는지 찾아보도록 한다.
“연산자 우선순위”를 검색하면 우선순위와 결합방향이 나온다.
[출처]: https://codeup.kr/problem.php?id=1064
딱 내가 하고 싶은 숏코딩
숏코딩이 너무 재밌다. 시간이 오래 걸려도 짧은 줄의 코딩은 즐겁다 ㅎㅎ if문을 여러 줄로 돌리는 것보다 짧은 한줄의 삼항연산자가 재밌다.
'Etc. > C' 카테고리의 다른 글
[C] 포인터, 배열, 동적메모리할당 (0) | 2021.10.09 |
---|---|
[C] 문자열 공백/띄어쓰기 입력 (0) | 2021.09.26 |
[C] 데이터 처리 (0) | 2021.09.21 |
[C/C++] 포인터 (0) | 2021.09.19 |
댓글