본문 바로가기
Programming/C Memo

08. 조건문 (if문)

by (J&M) 2020. 2. 10.

본 글은 C언어를 배우고 나서 복습 겸 정리한 글입니다.

코드

#include <stdio.h>

int main()
{	
    int a;
    int b;
    
    printf("a : ");
    scanf("%d", &a);
    printf("b : ");
    scanf("%d", &b);
    
    if (a == b){
        printf("a와 b는 같습니다.");
    }
    else if (a > b){
        printf("a가 b보다 큽니다.");
    }
    else
        printf("a가 b보다 작습니다.");
    
    return 0;
}

실행결과

입력 : 10, 2

출력 : a가 b보다 큽니다.

 

입력 : 2, 3

출력 : a가 b보다 작습니다.

 

요약


line 13~20

    if(만약) a와 b가 같다면, a와 b는 같습니다. 출력

    esle if(만약 위 조건이 아니고) a가 b보다 크다면, a가 b보다 큽니다. 출력

    else(위 조건 모두 아니라면) a가 b보다 작다면, a가 b보다 작습니다. 출력

 

if 문


if

if문을 사용하면 조건에 따라서 수행하는 코드가 다르게 할 수 있다.

if (조건) { 실행될 코드 } 의 형식으로 사용하며 조건이 참일 때만 실행된다. 

 

* if()뒤에 ;(세미콜론)을 붙이지 않도록 주의

    if뒤에 ;(세미콜론)을 붙인다면 if문이 끝나버리고 실행될 코드는 if문과 관계 없이 실행되어 버린다.

 

만약 예제 코드처럼 실행될 코드가 한 줄이라면 중괄호는 생략 가능하다.

#include <stdio.h>

int main()
{
    if(4 > 3)
        printf("if문 예제");
    
    return 0;
}

 

if문을 다중으로 쓰면 조건을 여러개 만족 시켜야 실행되도록 할 수 있다.

#include <stdio.h>

int main()
{
    int a = 2;
    int b = 3;
    int c = 5;
    
    if (a < b)		//a가 b보다 작으면 밑 줄 실행
        if (a < c)	//a가 c보다 작으면 밑 줄 실행
            if(b < c)	//b가 c보다 작으면 밑 줄 실행
                printf("hello");
                
    return 0;
}

 

다중 if문은 논리 연산자들 통해 간단하게 표현할 수 있다.

#include <stdio.h>

int main()
{
    int a = 2;
    int b = 3;
    int c = 5;
    
    if ((a < b) && (a < c) && (b < c))
        printf("AND");
    
    if ((a < b) || (a < c) || (b < c))
        printf("OR");
                
    return 0;
}

&&연산으로는 모든 조건을 만족시키면 실행,

|| 연산으로는 (a < b), (a < c), (b < c)중에 하나만 만족시켜도 실행이 된다.

 

괄호()는 조건의 연산을 더 정확하게 할 수 있도록 해준다.

예를 들면, A라는 조건과 B라는 조건이 둘 중 하나 이상이 참(OR)이고(AND) C라는 조건이 참일때 실행은 다음과 같이 쓸 수 있다.

 if (A || B)

    if C

        실행;

 

이것을 논리연산자를 사용하고 괄호로 순서를 명확히 해주면

if ((A || B) && C)

    실행;

이렇게 더 간단하게 쓸 수도 있다. 


if - else

if - else 문은 if의 조건이 참이면 실행, 거짓이면 else가 실행된다.

#include <stdio.h>

int main()
{
   int a = 4;
   int b = 3;
   
   if (a==b)
       printf("a와 b가 같다.");
   else
       printf("a와 b가 같지 않다.");
       
   return 0;
}

a와 b는 같지 않으므로 if의 실행문을 실행하지 않고

else의 실행문이 실행된다.


if - else if - else

if - else if - else문은 if의 조건을 검증하고, 거짓이면 else if의 조건을 검증하고, 거짓이면 else가 실행된다.

else if 의 개수는 제한이 없다.

#include <stdio.h>

int main()
{	
    int a = 6;
    int b = 2;
    
    if (a == b){
        printf("a와 b는 같습니다.");
    }
    else if (a > b){
        printf("a가 b보다 큽니다.");
    }
    else
        printf("a가 b보다 작습니다.");
    
    return 0;
}

a가 b보다 크므로 if는 건너뛰고 else if 가 실행된다.

 

 

if - else (if - else if - else)문과 if문을 여러개 쓴 것을 비교해 보면

if문은 첫 if를 검증하고도 밑의 if를 계속 검증하며 내려가게 된다.

반면 if - else (if - else if - else)문은 if가 참이면 조건문 자체를 빠져나가므로 더 빠르다.

'Programming > C Memo' 카테고리의 다른 글

10. 반복문(2) [while, do - while]  (0) 2020.02.14
09. 반복문(1) [for문]  (0) 2020.02.12
07. 입력  (0) 2020.02.10
06. 출력과 주석  (0) 2020.02.10
05. 연산자(2) [ 비트, 시프트, 삼항, 대입]  (0) 2020.02.10

댓글