안녕하세요

여행벌입니다.

공부하느라 포스팅할 정신이 없어서

오랜만에 포스팅을 해봅니다!

오늘은 알고 있으면 정말 유용한

'삼항 연산자'에 대해서 포스팅을 해보려고 합니다.


삼항연산자는 다른 언어에는 없는, 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

이런 식으로 삼항 연산자를 이용하면 간단하게 절댓값을 구할 수 있어서

저는 자주 이용하는 편인 것 같습니다!


그럼 오늘은 여기에서 포스팅을 마무리하도록 하겠습니다.

나중에삼항 연산자에 대해서 더 다룰 내용이 생긴다면 이어서 포스팅해보도록 하겠습니다.

열심히 공부하고 노력하고 있는 꿈 많은 예비 개발자입니다.
혼자서 공부한 내용을 정리하고 포스팅하다보니 틀린 내용이 있을 수도 있습니다.
많은 조언과 가르침 주실분은 댓글로 자유롭게 남겨주셔도 좋을것 같습니다!
감사합니다.

+ Recent posts