F.R.I.D.A.Y.

삼항 연산자 ? : 본문

DEV/C C++

삼항 연산자 ? :

F.R.I.D.A.Y. 2018. 9. 25. 16:06
반응형


(조건식) ? 참 반환 : 거짓 반환


 삼항 연산자는 연산자 중 유일하게 연산자를 사용할 때 필요한 항이 세 개인 연산자로, if문을 대체할 수 있는 연산자다.

 일반적인 분기에서는 if나 switch 등의 조건문을 사용하지만, if나 switch는 비교적 사용할 때 구조가 번잡하기 때문에 값을 반환한다던지 할 때는 삼항 연산자를 통해 if문을 대체한다.


 어떠한 값을 받아서 해당 값의 절대값을 출력하는 프로그램을 만들어보자.


#include <stdio.h>

int main(void) {
	int num;
	scanf("%d", &num);
	if (num < 0) num = -num;

	printf("%d\n", num);

	return;
}



 코드를 굉장히 줄이면 if문으로도 위와 같은 코드를 작성할 수 있다. 그러나, if문은 괄호를 사용하는 등의 번거로움이 있기 때문에 가끔 코드를 보면 삼항연산자를 이용한 아래와 같은 코드가 눈에 띄기도 한다.


#include <stdio.h>

int main() {
	int num;
	scanf("%d", &num);
	num = num > 0 ? num : -num;

	printf("%d\n", num);
	return 0;
}



 첫 번째 코드와, 바로 위 코드는 동일한 작업을 한다.


 물음표 ( ? ) 왼쪽은 조건식으로 if에서 조건식이 들어가는 부분에 작성되는 녀석을 작성하면 된다. 물음표의 우항에는 조건식에 따라 어떤 값을 넣을지 결정하는 것으로 보면 된다.

 콜론( : )을 기준으로 왼쪽은 조건식이 참일 경우, 오른쪽은 조건식이 거짓일 경우 반환되는 값을 작성한다.


참고

>> https://dojang.io/mod/page/view.php?id=145

728x90
반응형

'DEV > C C++' 카테고리의 다른 글

substr 직접 만들어보기  (0) 2018.11.14
배열은 수정 가능한데 포인터는 수정 불가?  (0) 2018.09.25
WINAPI - 2018 PU PROJECT  (0) 2018.09.19
Cpp 캐스팅  (0) 2018.06.20
Q 폴리곤 그리기  (0) 2018.06.02
Comments