본문 바로가기
프로그래밍/C

if문

by 길냥이 2025. 4. 18.
728x90

목차

  1. if문의 기본 형식
  2. if ~ else 문
  3. if ~ else if ~else 문

 

1. if문의 기본 형식

지금까지의 프로그래밍은 순차적이었어요.

변수를 선언하고, 변수에 대입하고, 변수를 계산하고, 변수를 출력했죠.

 

하지만..  조건에 따라 몇몇 과정이 생략되어야한다면 어떨까요?

그럴 때 필요한 것이 제어문이에요.

제어문은 세 가지로 나누어지는데..

1. 선택문 ( if , switch ~ case )

2. 반복문 ( for, while , do ~ while )

3. 분기문 ( break, continue, goto, return )

일단 if부터 알아보죠.

 

바깥을 보세요, 날씨가 맑은가요? 아니면 비가 오나요?

만약 날씨가 맑다면 그냥 나가고, 그렇지 않는다면 우산을 챙겨서 나갈 거에요.

이러한 조건문이 바로 if문이에요. 

기본적으로 if문의 구조는 다음과 같아요.

 

if (조건식 

{

    실행문

}

실행문이 한 줄일 경우에는 중괄호를 생략해도 상관없어요.

 

고럼 바로 실습.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int a = 0;
	printf("숫자를 입력하세요: ");
	scanf("%d", &a);

	if (a < 100)
		printf("작은 수군요!");    //입력이 100 미만일 경우 시행

	return 0;
}

만약 입력이 17이라면..

 

숫자를 입력하세요: 17
작은 수군요!

가 나와요.

지금같은경우에는 중괄호를 생략했지만, 가독성을 위해서라도 중괄호는 추가하는게 좋아요.

실행문이 여러줄일때는 당연히 붙여야 하고요.

 

2. if ~ else 문

흠, 하지만 우리는 조건을 만족하지 못할 때도 프로그램이 처리해줬으면 좋겠어요.

그럴 때 사용하는 것이 바로 else문입니다.

else문은 if문의 결과에서 제외된 값일 경우에 실행됩니다. 

한번 해볼까요?

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int a = 0;
	printf("숫자를 입력하세요: ");
	scanf("%d", &a);

	if (a < 100)
		printf("작은 수군요!");   //입력이 100 미만일 경우 실행
	else
		printf("큰 수군요!");    //입력이 100 이상일 경우 실행

	return 0;
}

짜잔

 

만약 입력이 1024라면..

숫자를 입력하세요: 1024
큰 수군요!

라는 결과가 나와요.

가능하다면 if ~ else문을 쓰는 것이 좋아요. if문 2개보다요.

빠르고 문제가 생길 걱정도 좋죠.

 

당연하게도 else문 역시 여러 줄을 시행하려면 중괄호가 필요하며

else문은 if문의 떨거지를 처리해주는 문장이라 조건식이 필요없어요.

 

3. if ~ else if ~ else 문

어쩨 점점 길어진다..

 

만약 분류해야 할 것들이 여러가지라면 if ~ else if ~ else if문을 사용해요.

본질적으로 저 문법은 

 

if

else 

    if

    else

        if

        else

에 해당하는 문법인데...

아무튼 한번 써보죠.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int a = 0;
	printf("숫자를 입력하세요: ");
	scanf("%d", &a);

	if (a < 100)
		printf("작은 수군요!");     //입력이 100 미만일 경우 실행
	else if (a < 1000)
		printf("중간 수군요!");     //위에서 처리되지 않은 수에서 입력이 1000 미만일 경우 실행
	else
		printf("큰 수군요!");       //위에서 처리되지 않았을 경우 실행

	return 0;
}

좋아요.

 

숫자를 입력하세요: 512
중간 수군요!

보면 else if가 a가 100 미만일때도 실행된다고 생각할 수 있는데, 실제로는 위쪽 if문에서 처리되지 못한 부분이라 그럴 필요는 없어요.

필요하다면 저 사이에 else if를 여러번 끼워넣어도 괜찮아요, 예를 들면...

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int a = 0;
	printf("숫자를 입력하세요: ");
	scanf("%d", &a);

	if ()
	{

	}
	else 
		if ()
		{
			
		}
		else
			if ()
			{

			}
			else
				if ()
				{
					
				}
				else

	return 0;
}

처럼 말이죠. 본질적으로 if else if else문은 if else문 안에 if else문을 하나 더 끼워넣은 거에요.

물론 저렇게 하면 가독성이 망하기 때문에 else if를 연결시킨답니다.

파이썬에서는 한발 더 나가서 elif를 쓴다는..

728x90

'프로그래밍 > C' 카테고리의 다른 글

while문, for문, do ~ while문  (2) 2025.04.18
switch ~ case문  (0) 2025.04.18
그 외 연산자  (0) 2025.04.16
기본 연산자  (0) 2025.04.15
데이터 입력  (0) 2025.04.15