Chapter. 2

김동현·2022년 10월 4일
0

앞서 배운 내용들은 차례로 진행되는 프로그램이었다.
드디어 조건문에 들어왔다.
 

if문

기본 If문의 경우 조건식을 만족하지 않으면 실행문을 실행하지 않고, 만족하면 실행문을 실행하게 된다.

#include <stdio.h>

int main(void)
{
    int a = 20; 
    int b = 0;

    if (a > 10)                     // 조건식: a가 10보다 크므로 조건식은 참
    {
        b = a;                      // 실행문: b = a 대입문 실행
    }   

    printf("a = %d, b = %d\n", a, b);     // 대입이 실행되면 두 값은 같음

    return 0;
}

위의 식에서 a는 20이기 때문에, 조건문을 만족하게 되고 결국 b=20이 되어 두 값은 같게 된다.

if문의 경우 중괄호를 사용하고 들여쓰기를 사용하는 것이 중요하다.
 
 

if else문

조건을 만족하지 못하는 경우에 실행하게 될 별도의 실행문.

#include <stdio.h>

int main(void)
{
    int a = 10; 

    if (a >= 0)
    {
        a = 1;
    }
    else 
    {
        a = -1;
    }

    printf("a : %d\n", a);

    return 0;
}

a = 10이므로 0보다 커서 1로 출력된다.

a ≥10 을 만족했기 때문에 else문은 건너뛴다.

내 실수: if (a≥ 0 )부분에서 ;을 표시할 필요가 없다.

if (a≥ 0); 이런식으로 코드를 작성해서 오류가 발생했다.

*2개의 if문을 사용하기보다는, if문과 else문을 사용하는 것이 효율적이다.
 
 

if~ else if~else문

3개 이상의 실행문에서 반드시 하나를 선택해야 하는 경우에 사용한다.

  • a가 0보다 크면 b는 1이된다.
  • a가 0이면 b는 2가 된다.
  • a가 0보다 작으면 b는 3이된다.
#include <stdio.h>

int main(void)
{
    int a = 0, b = 0;

    if (a > 0)              // 조건식1: a가 0보다 크면 b에 1대입
    {
        b = 1;
    }
    else if (a == 0)        // 조건식2: a가 0보다 크지 않고 a가 0이면 b에 2대입
    {
        b = 2;
    }
    else                    // a가 0보다 크지 않고 0도 아니면 b에 3대입
    {
        b = 3;
    }

    printf("b : %d\n", b);  // if문으로 결정된 b값 출력

    return 0;
}

a는 0이기 때문에,

조건식 1 무시하고, 조건식 2에 들어 맞는다. 그러면 어차피 조건식 3도 무시하기에… b=2가 된다.

마무리!!!

1. if문은 한 가지의 선택을 고민할 때 사용한다.

2. if ~ else문은 둘 중에 하나를 고를 때 사용한다.

3. if ~ else if ~ else문은 세 가지 이상에서 하나를 고를때 사용한다.


  
 

if문 중첩

어떤 조건을 검사하기 전에 선행조건이 있다면, if문 안에 if문을 넣어 사용한다.

#include <stdio.h>

int main(void)
{
    int a = 20, b = 10;

    if (a > 10)           // a가 10보다 크면 9 ~ 16행 실행, 작거나 같으면 18행으로 이동
    {
        if(b >= 0)        // b가 0이상이면 b에 1을 대입하고 18행으로 이동
        {
            b = 1;
        }
        else 
        {
            b = -1;       // b가 0보다 작으면 b에 -1대입하고 18행으로 이동
        }
    }

    printf("a : %d, b : %d\n", a, b);

    return 0;
}

  
 

else 결합 문제

#include <stdio.h>

int main(void)
{
    int a = 10, b = 20;

    if(a < 0)              // a가 0보다 작지만
    {
        if (b > 0)         // b가 0보가 크면
        {
            printf("ok");  // ok를 출력
        } 
    }
    else
    {
        printf("ok");      // a가 0이상이면 ok출력
    }

    return 0;
}

위의 식에서 어차피

if(a < 0) // a가 0보다 작지만 이 부분이 참이면 아래에 전개되는 내용부분들은 전부 참이기 때문에

사실상 {}를 생략해도 된다.

*질문?

코드를 작성할때 printf(”OK”) 이렇게 대문자를 입력했는데, 정상적으로 출력되지 않았다.

코드 작성의 경우 대문자를 사용하는 것은 불가능한가요?? → 상관없어! 그냥 내가 다른 부분 실수한 거임

profile
디자인과 개발을 모두 할줄 아는 능력있는 개발자가 되고싶습니다.

0개의 댓글