다유데브 2022. 11. 14. 10:56
반응형

1) 목표

  • if 문 이해하기
  • if 문에서 사용하는 조건(연산자)에 대해 알아보기
  • 조건연산자 이해하기

2) 설명

  1. if(조건)
    조건의 비교연산자 결과 참(true)/거짓(false)으로 사용
  2. if(값)
    값이 0이면 거짓(false)이고
    값이 0이외면 참(true)입니다. (-1, 1, ..)

비교연산자(조건) 설명
== 같음
!= 다름(같지 않음)
> 크다
< 작다
>= 크거나 같다
<= 작거나 같다

3) 사용법

    ▶ if 단독사용
        조건이 참(true)이면 { 실행문; } 이 실행됩니다.
        실행문이 1개인 경우 {} 가 생략될 수 있습니다.

        (1개의 실행문일 경우도 {}로 감싸는걸 추천드립니다.)

if (조건) {
	실행문;
}

    ▶ if ~ else
        조건이 참(true)이면 실행문1이 실행되고, 거짓(false)이면 실행문2가 실행됩니다.

if (조건) {
	실행문1;
} else {
	실행문2;
}

    ▶ if ~ else if ~ else
        조건1이 참이면 실행문1, 조건2가 참이면 실행문2, 조건3이 참이면 실행문3이 실행되고, 그외는 실행문4가 실행됩니다.

if (조건1) {
	실행문1;
} else if (조건2) {
	실행문2;
} else if (조건3) {
	실행문3;
} else {
	실행문4;
}

4) 예제프로그램

  • vi if.c
#include <stdio.h>

int main() {
    int nVal = 10;

    // if문 {} 가 있는 경우
    if (nVal == 10) {
        printf("TRUE: nVal == 10 \n");
    }

    // if문 {} 가 없는 경우 : 코드가 1줄인 경우
    if (nVal == 10)
        printf("TRUE: nVal == 10 \n");

    // if(값) 으로 사용
    if (0) {
        printf("TRUE: value 0 \n");
    }

    if (-10) {
        printf("TRUE: value -10 \n");
    }

    // if ~ else
    if (nVal == 5) {
        printf("TRUE: nVal == 5 \n");
    } else {
        printf("FLASE: nVal != 5 \n");
    }
    
    if (nVal < 3) {
        printf("1. nVal < 3 \n");
    } else if (nVal < 5) {
        printf("2. nVal < 5 \n");
    } else if (nVal <= 10) {
        printf("3. nVal <= 10 \n");
    } else {
        printf("4. else \n");
    }
    
    // 조건연산자
    // if ~ else문을 대체할 수 있습니다.
    printf("조건연산자\n");
    (nVal == 5) ? printf("TRUE: nVal == 5 \n") : printf("FLASE: nVal != 5 \n");

    return 0;
}

5) 컴파일/실행

~/c-lecture (master ✘)✹✭ ᐅ gcc -o if if.c
~/c-lecture (master ✘)✹✭ ᐅ ./if
TRUE: nVal == 10
TRUE: nVal == 10
TRUE: value -10
FLASE: nVal != 5
3. nVal <= 10
조건연산자
FLASE: nVal != 5
~/c-lecture (master ✘)✹✭ ᐅ

6) 분석

  • 변수 선언과 동시에 값을 할당 할 수 있습니다.    
...
  int nVal = 10;

 

  • 실행문이 1개인 경우 {} 가 생략 가능합니다. 
...  
  // if문 {} 가 없는 경우 : 코드가 1줄인 경우
  if (nVal == 10)
      printf("TRUE: nVal == 10 \n");

 

  • == 연산자 nVal의 값이 10과 같으면 참(true)이므로 if 문의 내용이 출력됩니다.
...
  // if문 {} 가 있는 경우
  if (nVal == 10) {
      printf("TRUE: nVal == 10 \n");
  }

  // if문 {} 가 없는 경우 : 코드가 1줄인 경우
  if (nVal == 10)
     printf("TRUE: nVal == 10 \n");

 

  • c언어에서 0의 값은 거짓입니다. 그래서 if 문이 실행되지 않습니다.
...
  // if(값) 으로 사용
  if (0) {
      printf("TRUE: value 0 \n");
  }

 

  • c언어에서 0이외의 값은 참(true)입니다. 그래서 if 문이 실행됩니다.
...
  if (-10) {
      printf("TRUE: value -10 \n");
  }

 

  • nVal의 값이 5가 아니므로 else 문이 실행됩니다.
...
  // if ~ else
  if (nVal == 5) {
      printf("TRUE: nVal == 5 \n");
  } else {
      printf("FLASE: nVal != 5 \n");
  }

 

  • nVal의 값이 10이므로 조건 nVal <= 10 이 참이므로 printf("3. nVal <= 10 \n"); 실행됩니다.
...
  if (nVal < 3) {
      printf("1. nVal < 3 \n");
  } else if (nVal < 5) {
      printf("2. nVal < 5 \n");
  } else if (nVal <= 10) {
      printf("3. nVal <= 10 \n");
  } else {
      printf("4. else \n");
  }
  • 조건연산자는 if ~ else를 대체할 수 있습니다. if ~ else문을 단일 문장으로 사용가능하기 때문에 자주 사용됩니다.
...
    // 조건연산자
    // if ~ else문을 대체할 수 있습니다.
    printf("조건연산자\n");
    (nVal == 5) ? printf("TRUE: nVal == 5 \n") : printf("FLASE: nVal != 5 \n");
  • 조건연산자는
    (조건) ? 참(true)일때 실행문 : 거짓(false)일때 실행문 으로 사용됩니다.
    (nVal == 5)  ==> 조건이고 
    ? printf("TRUE: nVal == 5 \n")   ==> 조건이 참일때 즉, nVal의 값이 5일때 실행됩니다.
    : printf("FALSE: nVal != 5 \n")   ==> 조건이 거짓일때 즉, nVal의 값이 5가 아닐때 실행됩니다.
반응형