모처럼 C언어 수업에 복귀하기 위해 교재를 찾아보며 배운 내용을 복기하고 있었는데
조건 연산자라는 개념이 눈에 띄었다.
조건 연산자 (삼항 연산자)
조건 연산자는 유일하게 3개의 피연산자를 가지는 삼항 연산자이다.
조건 ? 참일때: 거짓일때;
max_value = (x > y) ? x : y;
위의 식에서 조건 (x > y) 가 참이면 x가 수식의 결과가 되고,
(max_value == x 가 되고)
조건 (x > y) 가 거짓이면 y가 수식의 결과가 된다.
(max_value == y 가 된다.)
조건식에 괄호는 없어도 되지만, 가독성을 위해서 추가한다.
조건 연산자의 활용
absolute_value = (x > 0) ? x: -x; // 절대값 계산
max_value = (x > y) ? x: y; // 최대값 계산
min_value = (x < y) ? x: y; // 최소값 계산
최대 최소 값을 구할 때 앞으로 반복문과 조건문을 사용하지 않아도 될 것 같다.
조건 연산자의 활용 (2)
(age >= 20) ? printf("성인\n"): printf("청소년\n");
조건 연산자에는 printf() 와 같은 문장도 넣어서 활용할 수 있다.
조건 연산자의 활용 (3)
다음은 백준 2562번 문제이다.
조건 연산자를 사용해서 문제를 해결해 보자.
#include <stdio.h>
int main() {
int array[9];
int max_num = 0;
int index = 0;
for (int i = 0; i < 9; i++) {
scanf("%d", &array[i]);
max_num = max_num < array[i] ? array[i] : max_num;
index = array[i] == max_num ? i : index;
}
printf("%d\n", max_num);
printf("%d", index + 1);
return 0;
}
조건 연산자 이해해보기 끝~
'C' 카테고리의 다른 글
[C] 배열 포인터, 포인터 배열 (0) | 2023.10.26 |
---|---|
[C] 포인터와 함수 (0) | 2023.10.26 |
[C] 포인터와 다차원 포인터 (0) | 2023.10.24 |
[C] C의 문자열, 문자 배열 (0) | 2023.10.18 |
[C] 백준 2577 (0) | 2023.06.26 |