안녕하세요
여행벌입니다.
공부하느라 포스팅할 정신이 없어서
오랜만에 포스팅을 해봅니다!
오늘은 알고 있으면 정말 유용한
'삼항 연산자'에 대해서 포스팅을 해보려고 합니다.
삼항연산자는 다른 언어에는 없는, C와 C++의 특징인데요!
C++에서 유일하게 피연산자를 세 개나 가지는 조건 연산자입니다.
[문법구조]
'조건식 ? 반환값1 : 반환값2' 의 형태입니다.
조건식이 참이면, 반환값1을
거짓이면, 반환값2를 return 해주는 연산자입니다.
예제를 통해서 익혀보도록 하겠습니다.
#include<iostream>
using namespace std;
int main(void) {
int number1 = 11, number2 = 15;
int max = (number1 > number2) ? number1 : number2;
cout << max << endl;
}
number1 이랑 number2 중에서 더 큰 값을 출력해주는 프로그램인데요!
number1 > number2 가 참이라면, 반환값1인 number1을,
number1 > number2 가 거짓이라면, 반환값2인 number2를 반환함을 예상할 수 있습니다.
number1 에는 11이, number2 에는 15가 들어갔으므로,
number1 > number2 가 False가 되어, 출력값은 반환값2인 number2 가 됨을 알 수 있습니다.
만약에, 삼항 연산자를 사용하지 않았다면,
#include<iostream>
using namespace std;
int main(void) {
int number1 = 11, number2 = 15;
if (number1 > number2)
cout << number1 << endl;
else
cout << number2 << endl;
}
if문을 이용해서 코드를 구현해야 할 것입니다.
삼항 연산자를 잘 익혀둔다면, 조금 더 보기 편하게 간결하게 코드를 구현할 수 있습니다.
알고리즘 문제를 풀다 보면, a 와 b가 있을 때, a와 b의 거리 차이를 구해야할 때가 많습니다.
즉, a-b의 절댓값을 구해야할 때가 많은데요!
이때, 삼항연산자를 사용한다면 절댓값 함수를 간단하게 구현할 수 있습니다.
바로 예제를 통해 보여드리도록 하겠습니다.
#include<iostream>
using namespace std;
#define abs(a,b) a > b ? a-b : b-a;
int main(void) {
int number1, number2;
cin >> number1 >> number2;
int absolute = abs(number1, number2);
cout << absolute << endl;
}
abs 함수를 a가 b보다 크면 a-b를 , a가 b보다 작으면 b-a를 반환하도록 삼항연산자를 이용해서 구현해봤습니다.
그러면 제가, number1에 15를 number2에 -5를 입력한다면,
number1이 number2보다 크므로 number1-number2인 20을 반환함을 예상할 수 있겠죠?
아래의 그림처럼 출력이 될 것입니다.
[입력]
15 -5
[출력]
20
이런 식으로 삼항 연산자를 이용하면 간단하게 절댓값을 구할 수 있어서
저는 자주 이용하는 편인 것 같습니다!
그럼 오늘은 여기에서 포스팅을 마무리하도록 하겠습니다.
나중에삼항 연산자에 대해서 더 다룰 내용이 생긴다면 이어서 포스팅해보도록 하겠습니다.
열심히 공부하고 노력하고 있는 꿈 많은 예비 개발자입니다.
혼자서 공부한 내용을 정리하고 포스팅하다보니 틀린 내용이 있을 수도 있습니다.
많은 조언과 가르침 주실분은 댓글로 자유롭게 남겨주셔도 좋을것 같습니다!
감사합니다.
'Computer Language > C , C++' 카테고리의 다른 글
[C++] STL String Library 기본 명령어 정리(1) (0) | 2019.10.03 |
---|---|
[C++] 스택 자료구조 & STL Stack Library 기본 명령어 정리 (0) | 2019.09.19 |
[C++] 수행 시간 측정하기, '시간 초 재기' (0) | 2019.09.18 |
[C++] 덱 자료구조 & STL Deque Library 기본 명령어 정리 (0) | 2019.09.17 |
[C++] 큐 자료구조 & STL Queue Library 기본 명령어 정리 (0) | 2019.07.18 |