본문 바로가기
c언어

c언어 중첩된 if문, else if문으로 다중 if문 사용하기

by 개발자 L 2022. 12. 2.
반응형

c언어 중첩된 if문, else if문으로 다중 if문 사용하기

네 안녕하세요, 이번 포스팅에서는 다중 if문을 다루는 방법에 대하여 알아보도록 하겠습니다.

다중 if문은 선택지가 여러 개가 존재를 하거나, 하나의 큰 덩이를 관장하는 if문 안에 다른 if문이 있는 경우에 씁니다.

그리고 이러한 형태를 좀 더 발전을 시키면 for문과 while문과 같은 반복문의 구조를 갖출 수가 있습니다.

그럼 지금부터 어떤 식으로 다루는지 한 번 알아보도록 하겠습니다.

 

1. 중첩된 if문

중첩된 if문은 하나의 if문 안에 한 개 이상의 다른 if문이 존재를 하는 if문을 말합니다.

이런 식으로 씁니다.

if (조건식1)
{
	if (조건식 2)
    {
		printf(문장1);
    }
}

else
{
	printf(문장);
}

이런 식으로 작성을 하며,

if문 안에 있는 if문은 큰 if문을 조금 더 세밀하게 나눈 if문이 됩니다.

그래서 그걸 먼저 수행을 한 후에 큰 if문이 수행이 되고,

그 조건이 참이 아닐 경우에 else문을 실행시킵니다.

반응형

 

2. 연속적인 if문(else if)

이런 경우와는 다르게 연속적으로 if문이 나열이 될 때가 있습니다.

이럴 때는 if를 여러 번 써도 되지만,

좀 더 가독성을 높이기 위해서 else if를 씁니다.

그래서 첫 조건문은 if로 쓰고,

그다음에 나열되는 조건문은 else if로 계속 나열을 해주며,

제일 마지막에 오는 조건문은 else로 써서 조건문을 닫아줍니다.

기본적인 사용법은 이러합니다.

if(조건식)
	printf(문장);
else if (조건식)
	printf(문장);
else
	printf(문장);

이러한 구조를 가지고 있습니다.

그럼 이를 활용하여 간단한 예제를 한 번 작성을 해보도록 하겠습니다.

#include <stdio.h>

int main()

{
    int score;

    printf("성적을 입력하세요 : ");
    scanf("%d", &score);

    if(score >= 90)
    {
        printf("A학점을 받으셨습니다.\n");
    }

    else if(score >= 80)
    {
        printf("B학점을 받으셨습니다.\n");
    }

    else if(score >= 70)
    {
        printf("C학점을 받으셨습니다.\n");
    }

    else if(score >= 60)
    {
        printf("D학점을 받으셨습니다.\n");
    }

    else
    {
        printf("F학점, 낙제하셨습니다.\n");
    }

    return 0;
}

이런 식으로 작성을 해봤습니다.

그럼 결과는 어떻게 나오는지 한 번 볼까요?
먼저 A학점을 받는 경우입니다.

성적을 입력하세요 : 95
A학점을 받으셨습니다.

B학점을 받는 경우입니다.

성적을 입력하세요 : 87
B학점을 받으셨습니다.

C학점을 받았을 경우입니다.

성적을 입력하세요 : 73
C학점을 받으셨습니다.

D학점을 받은 경우입니다.

성적을 입력하세요 : 61
D학점을 받으셨습니다.

마지막으로 F학점으로 낙제를 했을 경우입니다.

성적을 입력하세요 : 53
F학점, 낙제하셨습니다.

이렇게 각각 조건에 맞는 결과물이 나오는 것을 보실 수가 있습니다.

그리고 이를 활용하여 문자들을 분류하는 프로그램도 작성을 할 수 있습니다.

그럼 한 번 코드를 작성을 해보겠습니다.

#include <stdio.h>

int main()

{
    char ch;

    printf("문자를 입력하세요 : ");
    scanf("%c", &ch);

    if(ch >= 'A' && ch <= 'Z')
    {
        printf("%c는 대문자입니다.\n", ch);
    }

    else if(ch >= 'a' && ch <= 'z')
    {
        printf("%c는 소문자입니다.\n", ch);
    }

    else if(ch >= '0' && ch <= '9')
    {
        printf("%c는 숫자입니다.\n", ch);
    }

    else
    {
        printf("%c는 기타문자입니다.\n", ch);
    }

    return 0;
}

이렇게 대문자, 소문자, 숫자, 기타 문자를 분류하는 프로그램을 간단히 작성을 해봤습니다.

그럼 결과는 어떻게 나오는지 한 번 보도록 하겠습니다.

먼저 대문자를 입력했을 경우입니다.

문자를 입력하세요 : A
A는 대문자입니다.

이어서 소문자를 입력했을 경우입니다.

문자를 입력하세요 : k
k는 소문자입니다.

숫자를 입력했을 경우입니다.

문자를 입력하세요 : 8
8는 숫자입니다.

마지막으로 기타 문자를 입력했을 경우입니다.

문자를 입력하세요 : $
$는 기타문자입니다.

그 외 모든 문자들은 기타 문자로 간주하여 출력이 되는 것을 볼 수가 있습니다.

이제 여러분들은 조건문을 활용한 간단한 프로그램을 짤 수 있는 능력이 생겼습니다.

 

여기까지 다중 if문을 사용하는 방법에 대하여 알아보았습니다.

다음 포스팅에서는 switch문에 대하여 알아보도록 하겠습니다.

긴 글 읽어주신 독자분들께 다시 한번 감사드립니다 ~

반응형

댓글