C 언어의 삼항 연산자

안녕하세요, 미래의 코딩 마법사 여러분! 오늘 우리는 C 언어의 삼항 연산자 세계로 흥미로운 여정을 떠납니다. 이전에 들어본 적이 없더라도 걱정하지 마세요 - 이 수업이 끝나면 이 강력한 도구를 마스터하실 수 있을 것입니다!

C - Ternary Operator

삼항 연산자는 무엇인가요?

들어가기 전에, 우선 준비를 해보겠습니다. 상상해 보세요, 아이스크림 가게에서 초콜릿과 바닐라 중에서 고를 때를. 일반적으로 이 결정을 코드로 작성할 때 if-else 문을 사용할 것입니다. 하지만 더 짧고 더 우아한 방법이 있다고 말해드릴게요. 바로 삼항 연산자입니다!

삼항 연산자는 압축된 if-else 문입니다. "삼항"이라는 이름은 세 개의 피 연산자를 가지기 때문입니다. 이를 통해 코드에서의 결정을 간단하게 처리할 수 있습니다.

C 언어의 삼항 연산자 문법

이 유용한 연산자의 문법을 간단히 설명해보겠습니다:

condition ? expression1 : expression2

이렇게 작동합니다:

  1. 먼저 condition을 평가합니다.
  2. 참이면 expression1을 실행합니다.
  3. 거짓이면 expression2를 실행합니다.

간단하죠? "이 조건이 참인가? 그렇다면 이를 하고, 그렇지 않다면 저를 하라"고 물어보는 것과 같습니다. 이제 이를 실제로 적용해 보겠습니다!

예제 1: C 언어의 삼항 연산자

기본 예제로 시작해보겠습니다:

#include <stdio.h>

int main() {
int age = 20;
char *status = (age >= 18) ? "adult" : "minor";
printf("You are an %s.\n", status);
return 0;
}

이 예제에서 우리는 age가 18 이상인지 확인합니다. 그렇다면 "adult"를 status에 할당하고, 그렇지 않다면 "minor"를 할당합니다. 출력은 "You are an adult."가 될 것입니다.

이를 구체적으로 설명하자면:

  • (age >= 18)는 우리의 조건입니다.
  • "adult"는 조건이 참일 때 할당할 것입니다.
  • "minor"는 조건이 거짓일 때 할당할 것입니다.

예제 2: 숫자 비교

이제 삼항 연산자를 사용하여 두 숫자 중 더 큰 값을 찾아보겠습니다:

#include <stdio.h>

int main() {
int a = 10, b = 20;
int max = (a > b) ? a : b;
printf("The larger number is: %d\n", max);
return 0;
}

여기서 우리는 ab를 비교합니다. a가 더 크다면 amax에 할당하고, 그렇지 않다면 b를 할당합니다. 출력은 "The larger number is: 20"가 될 것입니다.

예제 3: 짝수 또는 홀수

이제 삼항 연산자를 사용하여 숫자가 짝수인지 홀수인지 확인해보겠습니다:

#include <stdio.h>

int main() {
int number = 7;
printf("%d is %s.\n", number, (number % 2 == 0) ? "even" : "odd");
return 0;
}

이 예제에서 우리는 number가 2로 나누어 떨어지는지 확인합니다. 그렇다면 "even"을 출력하고, 그렇지 않다면 "odd"를 출력합니다. 출력은 "7 is odd."가 될 것입니다.

예제 4: 절대값

이제 삼항 연산자를 사용하여 숫자의 절대값을 찾아보겠습니다:

#include <stdio.h>

int main() {
int number = -5;
int absolute = (number < 0) ? -number : number;
printf("The absolute value of %d is %d.\n", number, absolute);
return 0;
}

number가 음수라면 그을 -1로 곱하여 양수로 만들고, 그렇지 않다면 그대로 두습니다. 출력은 "The absolute value of -5 is 5."가 될 것입니다.

예제 5: 성적 분류

이제 삼항 연산자를 사용하여 성적을 분류해보겠습니다:

#include <stdio.h>

int main() {
int score = 75;
char *result = (score >= 60) ? "Pass" : "Fail";
printf("Your score is %d. Result: %s\n", score, result);
return 0;
}

여기서 우리는 score가 60 이상인지 확인합니다. 그렇다면 "Pass"를 result에 할당하고, 그렇지 않다면 "Fail"를 할당합니다. 출력은 "Your score is 75. Result: Pass"가 될 것입니다.

예제 6: 윤년 확인

이제 삼항 연산자를 사용하여 연도가 윤년인지 확인해보겠습니다:

#include <stdio.h>

int main() {
int year = 2024;
char *result = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) ? "Leap Year" : "Not a Leap Year";
printf("%d is %s.\n", year, result);
return 0;
}

이 예제에서 우리는 year가 4로 나누어 떨어지고 100으로 나누어 떨어지지 않거나 400으로 나누어 떨어지는지 확인합니다. 그렇다면 윤년입니다. 출력은 "2024 is Leap Year."가 될 것입니다.

중첩된 삼항 연산자

이제 중첩된 삼항 연산자를 사용하여 코드의 레벨을 높이보겠습니다. 코딩에서 러시아 인형을 맞추는 것과 같습니다!

#include <stdio.h>

int main() {
int num = 10;
char *result = (num > 0) ? "positive" : (num < 0) ? "negative" : "zero";
printf("%d is %s.\n", num, result);
return 0;
}

이 예제에서 우리는 num이 양수인지 확인합니다. 그렇지 않다면 음수인지 확인하고, 그렇지 않다면 0인 것입니다. 출력은 "10 is positive."가 될 것입니다.

결론

이제 여러분은 C 언어의 삼항 연산자를 마스터했습니다. 이 강력한 도구는 코드를 더 간결하고 가독성 있게 만들 수 있습니다. 하지만 강력한 권력은 큰 책임을 동반합니다 - 삼항 연산자를 지혜롭게 사용하세요!

이 글에서 다룬 방법들의 빠른 참고 표입니다:

방법 문법 예제
기본 삼항 condition ? expr1 : expr2 (age >= 18) ? "adult" : "minor"
숫자 비교 (a > b) ? a : b int max = (a > b) ? a : b;
짝수 또는 홀수 (num % 2 == 0) ? "even" : "odd" (7 % 2 == 0) ? "even" : "odd"
절대값 (num < 0) ? -num : num int abs = (num < 0) ? -num : num;
성적 분류 (score >= 60) ? "Pass" : "Fail" char *result = (score >= 60) ? "Pass" : "Fail";
윤년 확인 ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) ? "Leap Year" : "Not a Leap Year" char *result = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) ? "Leap Year" : "Not a Leap Year";
중첩된 삼항 cond1 ? expr1 : cond2 ? expr2 : expr3 (num > 0) ? "positive" : (num < 0) ? "negative" : "zero"

계속 연습하면 곧 삼항 연산자를 마스터하실 수 있을 것입니다! 행복한 코딩을 기원합니다!

Credits: Image by storyset