조건문 중 삼항 연산자 조건문이 있습니다.
if나 switch-case문에 비해 생소하기도 하고, 실제 많이 사용되지 않습니다.
하지만 그렇다고 지나칠수는 없습니다.
다른 조건문들이 갖지 못한 삼항연산자만의 특징 또한 존재 합니다.
1. 삼항 연산자 문법
조건 ? 참(true)일때의 값(또는 액션) : 거짓(false)일때의 값(또는 액션);
?를 통해 삼항연산자임을 선언하고
:를 통해 true와 false의 분기를 나눕니다.
아직 이해가 되지 않으시다면 아래 예시를 봐주시기 바랍니다.
예시. 입력 받은 수가 홀수인지 짝수인지 출력하는 프로그램
소스 코드
#include <stdio.h>
int main(void)
{
int input_number = 0;
scanf("%d", &input_number);
input_number%2 == 0 ? printf("짝수\n") : printf("홀수\n");
}
소스 설명
input_number에 사용자가 입력한 숫자를 할당하고,
삼항 연산자를 통해 해당 숫자가 홀수인지 짝수인지 출력해주는 프로그램입니다.
실행 결과
if문을 사용하지 않고 삼항 연산자를 사용하여 구현되어도 잘동작되는 것을 확인 할 수있습니다.
삼항 연산자를 사용하는 이유는 첫째, 소스가 간결해지는 효과가 있습니다. 만약 위의 구문을
if문으로 작성하였다면,
if(intput_number %2 == 0)
{
printf("짝수"\n)'
}
else
{
printf("홀수"\n)'
}
로 표현되었겠지만, 삼항연산자는 한줄로 표현할 수 있다는 특징이 있습니다.
하나 더 지나칠 수 없는 삼항 연산자의 특징이라면 return 뒤에 삼항연산자를 추가 시킬 수 있다는 것입니다.
예시를 하나 더 들어보겠습니다.
역시 홀, 짝을 판별하는 프로그램입니다.
#include <stdio.h>
char* judgeOddorEven(int a)
{
return a%2==0? "짝수\n" : "홀수\n";
}
int main(void)
{
int input_number = 0;
scanf("%d", &input_number);
printf(judgeOddorEven(input_number));
}
입력받은 수를 judgeOddorEven함수로 보내고 해당 함수에서 홀짝을 판별하여 문자열로 리턴하여 주는 것을 그대로 printf한 소스 입니다.
주목해야 하는 부분은 judgeOddorEven함수 입니다.
return 뒤에 삼항연산자가 쓰여있습니다.
이것은 if문이 할 수 없는 동작입니다.
return if(a%2==0)
{
}
.
.
이런식으로 정의해 나가는 순간 신택스 에러가 발생합니다.
물론 위에서 if문으로 판단한 후에 return을 해줘도 되지만, 삼항 연산자가 갖는 특징을 말씀드리기 위한 것임을 다시 한번 말씀드립니다.
실행 결과
봐주셔서 감사합니다.
'IT프로그래밍' 카테고리의 다른 글
[엑셀 함수 정리]엑셀 COUNTBLANK 함수 -비어 있는 셀의 개수 구하기- (0) | 2020.04.22 |
---|---|
[엑셀 함수 정리]엑셀 COUNTA 함수 -비어 있지 않은 셀의 개수 구하기- (0) | 2020.04.22 |
[엑셀 함수 정리]엑셀 COUNT 함수 사용 방법과 의미 설명 (0) | 2020.04.21 |
[MSSQL]IDENTITY_INSERT가 OFF로 설정되면 테이블 'tableName'의 ID 열에 명시적 값을 삽입할 수 없습니다. (0) | 2020.04.21 |
[엑셀 함수]엑셀 함수 정리 - 조건 함수 IF - 예제와 설명 (0) | 2020.04.20 |
[Python]파이썬 루트(제곱근) 구하기 소스 코드 - 설명 (sqrt, pow) (0) | 2020.04.20 |
[엑셀 함수]엑셀 함수 정리 - 평균 함수 AVERAGE - 예제와 설명 (0) | 2020.04.20 |
[목록]엑셀 함수 정리, 엑셀 함수 모음, 자주쓰는 엑셀 함수 모음 (0) | 2020.04.19 |
댓글