# 조건문(conditionals)
<div class="embed-responsive embed-responsive-16by9">
<iframe src="https://www.youtube.com/embed/YJaFRZqvXKw" frameborder="0" allowfullscreen></iframe>
</div>
## 목차
1. 조건문이란
2. 비교연산자
3. 논리 연산자
4. 조건문의 중첩
## 1. 조건문이란
조건문이란, 프로그램의 실행 흐름을 결정하는 구문이다.
대표적 조건문은 `if`, `else-if`, `else`가 있고, `조건식`을 통해 흐름을 결정한다.
```
if (CONDITION_A)
{
/* 조건식 A가 참인 경우, 수행할 코드 */
}
else if (CONDITION_B)
{
/* 조건식 B가 참인 경우, 수행할 코드 */
}
else
{
/* 그 외(A와 B 조건 모두 아닌 경우)의 경우, 수행할 코드 */
}
```

예를 들어, '배고픈 상황에서 집으로 가는 중, 마트를 들릴 것인가?' 라는 내용을 코드화하면 아래와 같다.
```
if (집에 먹을 것이 있는가?)
{
/* 먹을 것이 있는 경우 수행될 중괄호 내부 */
그냥 집으로 간다;
}
else if (요리를 하기 귀찮은가?)
{
/* 집에 먹을 것이 없고, 배고픈 경우 수행될 중괄호 내부 */
식당에서 밥을 먹는다;
}
else
{
/* 그 외(집에 먹을 것이 없고, 요리하는게 부담스럽지 않음)의 경우 수행될 중괄호 내부 */
마트에 들려 식료품을 산다;
}
```
## 2. 비교 연산자(comparison)
비교 연산자는, 좌우 값을 비교하여 `참(1)`/`거짓(0)`을 판별한다.

비교 연산자가 사용된 코드 예
```
int age = 17; // 변수 생성
if (age > 19) // age가 19보다 크다
{
printf("성인 입니다.");
}
else if (age >= 14) // age가 14보다 크거나 같다
{
printf("청소년 입니다.");
}
else // 그 외
{
printf("어린이 입니다.");
}
```
## 3. 논리 연산자(logical)
논리 연산자는, 좌우 참/거짓을 기준으로 새 결과를 판별한다.

논리 연산자를 사용한 코드 예
```
int is_rich = 1; // true: 1, false: 0
int is_looking_good = 0;
int is_good = 1;
if (is_good || is_looking_good || is_rich)
{
printf("한 번 이야기를 나누어 보세요.\n");
}
if (is_good && is_looking_good || is_good && is_rich)
{
printf("서로를 알아가 보세요!\n");
}
```
## 4. 조건문의 중첩(nested conditionals)
조건문은 조건문 속에서 사용 될 수 있다.
```
int is_male = 1;
double tall = 176.4;
if (is_male)
{
if (tall > 173.5)
printf("남성 평균 이상입니다.");
}
else
{
if (tall > 160.8)
printf("여성 평균 이상입니다.");
}
```
