if 문

정의

  • 조건식의 참/거짓에 따라 특정 블록의 실행 여부를 결정한다.
  • if, else if, else 키워드를 사용한다.

블록 (block, 복합문 compound statement)
한 개 이상의 문장을 중괄호 { }로 묶어 놓아 하나의 문장처럼 취급할 수 있게 한 것.
지역변수를 포함할 수 있다.
} 로 문장이 끝났음을 표시하므로, 세미콜론을 붙일 필요가 없다.

표현 방법

단순 if 문

  • if 하나를 사용하는 가장 단순한 형태의 선택 제어문
  • 조건에 따라 실행이 두 방향으로 분기한다.(참 -> 다음 / 그냥 다음)
  • 조건식은 괄호 안에 작성한다.
1
2
3
4
if (expr_c) {     // expr_c : 조건식
	statement_t;  // expr_c 가 참이면 실행됨
}
statement_next;   // if 문에 이어서 실행됨

if - else 문

  • ifelse 를 사용하는 형태의 선택 제어문
  • 조건의 참과 거짓에 따라 실행되는 명령문을 다르게 지정할 수 있다.
  • if 의 조건식은 괄호 안에 작성하며, else 는 조건식이 없다.
1
2
3
4
5
6
if (expr_c) {     // expr_c : 조건식
	statement_t;  // expr_c가 참이면 실행됨
} else {
	statement_f;  // expr_c가 거짓이면 실행됨
}
statement_next;   // if-else 문에 이어서 실행됨

다중 if - else 문

  • 두개 이상의 if-else문중첩되어 구성되는 선택 제어문
  • 예를 들어 두 개의 if-else 문이 중첩된 다중 if - else 문은 총 3가지의 흐름을 만들어낼 수 있다.
1
2
3
4
5
6
7
8
9
10
if (expr_c1) {        // 조건식 1
	if (expr_c2) {    // 조건식 2
		statement_tt; // 조건식 1, 2가 모두 참일 때 실행
	} else {
		statement_tf; // 조건식 1은 참, 2는 거짓일 때 실행
	}
} else {
	statement_f;      // 조건식 1이 모두 거짓일 때 실행
}
statement_next;       // 다중 if-else 문 다음에 실행
  • 주의 : else 는 가장 가까운 if 와 짝을 이룬다. 따라서 반드시 코드블럭 ({ })을 사용하기 바란다.
1
2
3
4
5
if (expr_c1)
	if (expr_c2)
		statement_tt;
else                   // 이 else 는 expr_c2 if 와 짝임
	statement_f;

다중 if - else if - else 문

  • if, else if, else 키워드가 모두 쓰여 구성되는 선택 제어문
  • 여러 개 조건 중 중간에 하나라도 참이면, 해당 명령문을 실행한 후 if - else if - else문은 종료된다.
  • 만약 참인 조건이 하나도 없는 경우, 마지막 else 문이 실행된다.
1
2
3
4
5
6
7
8
9
10
if (expr_c1) {
	statement_1;
} else if (expr_c2) { 
	statement_2;      // expr_c1 이 거짓이고, expr_c2 가 참일 때 실행됨
} else if (expr_c3) { 
	statement_3;      // 1, 2가 거짓이고, 3가 참일 때 실행됨
} else {
	statement_4;      // 1, 2, 3이 모두 거짓일 때 실행됨
}
statement_next;

예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void marking(int score){
    if (score >= 95){
        printf("%s", "A+\0");
    }
    else if (score >= 90) {
        printf("%s", "A\0");
    }
    else if (score >= 80) {
        printf("%s", "B\0");
    }
    else if (score >= 70) {
        printf("%s", "C\0");
    }
    else if (score >= 60) {
        printf("%s", "D\0");
    }
    else {
        printf("%s", "F\0");
    }
}

Reference

C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)

Comments