if문은 특정 조건이 true이면 처리하고 그렇지 않으면 처리하지 않는 그런 곳에 사용하는 간단한 분기 처리문입니다. if문은 몇 가지 형태로 구성할 수 있는 데, 가장 간단한 것 부터 알아보겠습니다.
if문
if(condition)
{
// condition이 0이 아니면 처리하는 로직
}
if문 단독으로 사용하는 경우는 condtion 조건이 만족하는 경우에만 추가적인 로직을 실행하는 경우에 사용합니다. condition은 다양한 형태가 될 수 있습니다.
예1). condition이 단순히 변수인 경우
int a = 0;
......
if(a)
{
printf("a = %d\n", a);
}
위의 예제는 a의 값이 0이 아니면 a의 값을 출력하는 프로그램입니다. if문은 하나의 문장만 실행하는 경우에는 아래와 같이 { ~ }를 생략이 가능합니다. 하나의 문장이라고 함은 ;로 끝나는 것을 문장이라고 합니다.
int a = 0;
......
if(a)
printf("a = %d\n", a);
되도록이면 하나의 문장이라도 { ~ }를 생략하지 말고 첫번째처럼 { ~ }로 감싸주시는 것이 좋습니다.
예2). condition이 비교 및 논리 연산을 사용하는 경우
int a;
int b;
......
if(a > b)
{
printf("a = %d\n", a);
}
if ~ else ~문
if ~ else문은 특정 조건일 때와 그렇지 않은 경우에 로직이 다른 경우 사용합니다.
if(condition) {
// condition이 true이면 실행되는 부분
} else {
// condition이 false이면 실행되는 부분
}
예제). 2개의 값 중에서 max 값을 얻는 예제
int a;
int b;
int max;
......
if(a > b) {
max = a;
} else {
max = b;
}
if ~ else if ~ else 문
여러 가지의 조건이 있고 그것에 따라서 처리해야 하는 로직이 다른 경우에는 if ~ else if ~ [else if ....] else ~ 형태를 사용할 수 있습니다.
if(condition1) {
// condition1이 true이면 실행되는 부분
} else if(condition2) {
// condition1이 false이고 condtion2가 true이면 실행되는 부분
} else if(condition3) {
// condition1, condtion2가 false이고 condtion3가 true이면 실행되는 부분
} else {
// 위의 모든 condition이 false이면 실행되는 부분
}
else if ( ) 부분은 계속해서 추가할 수 있으며, else 부분은 나머지에 해당하므로 여러 개가 올 수 없습니다. 또한 else 부분은 필요 없으면 사용안해도 됩니다.
ex). 윤년 여부를 판단하는 함수
int is_leap_year(int year)
{
if(year % 400 == 0) { // 년도를 400으로 나누어지면 윤년
return 1;
} else if(year % 100 == 0) { // 년도를 100으로 나누어지면 윤년아님
return 0;
} else if(year % 4 == 0) { // 년도를 4로 나누어지면 윤년
return 1;
} else { // 그 외는 윤년이 아님
return 0;
}
}
중첩 if문
if( )문 내에 다른 조건에 의한 분기가 있는 경우에 if문 내에 또 if문이 올 수 있습니다.
if(condition1) {
...
if(condition1-1) {
...
} else {
...
}
...
} else if(condition2) {
...
if(condition2-1) {
...
} else {
...
}
...
} else {
...
}
'C언어 > 문법' 카테고리의 다른 글
15. 반복문 (for) (2) | 2019.11.03 |
---|---|
14. 조건문 (switch ~ case) (2) | 2019.11.02 |
12. C언어의 연산자(operator) (2) | 2019.10.31 |
11. 변수(變數:Variable)와 관련 총정리 (0) | 2019.10.30 |
10. 변수와 상수 (문자, 문자열) (0) | 2019.10.28 |