본문 바로가기

C

([C언어] 5강) if문과 else, else-if문

 

C언어에는 "조건문"혹은 "분기문" 이라고 부르는 것이 두가지 있습니다

switch문과 if문인데요

 

그중에서 오늘은 프로그래밍에서 가장 많이 쓰는

if문을 배워보려고 합니다!

 

if 말만들어도 뭔지 알것같지않나요?

한국어로 "만약에" 라는 뜻이죠!

 

사용법은

if(조건)

{

내용

}

이렇게 사용하면 됩니다!

어라 {}이거 어디서 본것같죠?

함수를 만들때 쓰죠~

{}이 괄호는 항상 {여기부터

}여기까지이다 라는말이니 꼭 기억해두세요!

{의 갯수와 }의 갯수가 같아야합니다!

연것은 5개인데 닫은것은 4개이고 이러면 안돼요!

 

자 그럼 이번에는 참과 거짓을 알아보도록 하겠습니다.

 

C언어에서는 참과 거짓을

거짓이면 0, 참이면 0이아닌 모든 수로 판명하지만

보통 참은 1로씁니다 (필수는 아니지만 약속이랄까)

 

그럼 만약에

if(1)
{
}

이렇게 돼있다면 무슨의미일까요?

저 if문은 의미가 없습니다 무조건 참이므로 무조건 실행이니까요!

자 그럼 전 시간에 배웠던것들을 합쳐서

사용자 입력을 받아서 그 수가 홀수인지 짝수인지 알아보기를 해볼게요

#pragma warning(disable:4996)
#include <stdio.h>

int main()
{
	int input;
	scanf("%d", &input);
	if (input % 2 == 0)
	{
		printf("%d는 짝수입니다", input);
	}
	if (input % 2 == 1)
	{
		printf("%d는 홀수입니다", input);
	}
}

이렇게 되겠네요!

input이라는 int형 변수에 scanf를 이용해서 정수를 입력받고

input %2했을때 0이면 이니까 2로 나누어떨어진다는말이고 짝수일때 라는 말이니

printf로 input의 값은 짝수입니다! 라고 출력하고

input % 2가 1일때니까 2로 나누어 떨어지지 않을때 라는 말이니

printf로 input의 값은 홀수입니다! 라고 출력하는겁니다!

해볼까요?

81을 쳐보니 정상적으로 작동되네요! 짝수도 테스트 해봐야겠죠?

짝수도 잘 되는것을 볼 수있습니다!

 

 

 

자 그럼 이번에는 조건을 두개 세우는법을 알려드릴게요!

지금 제가 원하는것은 int형 변수 a가 3일때나 5일때 "Yeah!"라고 출력하고싶습니다!

어떻게 하면 될까요?

 

||를 사용 하면 됩니다. |는 엔터 위에있는 \버튼을 쉬프트를 누른상태로 누르면 나오는 특수문자인데요

이것을 두개 써서 좌항, 우항이 둘중 하나라도 참일때 참 이라는걸 알아주세요

"또는" 이라는 말이 핵심이니 기억해주세요!

 

int형 변수 a가 3일때나 5일때 "Yeah!"라고 출력하도록 프로그래밍 해보겠습니다!

한번 보실까요?

#include <stdio.h>

int main()
{
    int a = 3;
    
    if( a == 3 || a == 5 )
    {
    	printf("Yeah!");
    }
}

이렇게 하면 a가 3인지 먼저 검사하고 3이 아니라면

a가 5인지도 검사하게 됩니다.

이렇게 해서 둘중 하나라도 참이 나오면 Yeah!라고 출력하는 코드입니다

 

 

그럼 이번에는 "또는"을 써봤으니 "그리고"라는 조건을 넣어보겠습니다

그리고는 좌항과 우항이 모두 참이어야 참을 반환합니다!

&&으로 쓸수 있구요! 쉬프트8을누르면 나오는 그 &입니다!

자 그럼 제가 원하는 바는 int형 변수 a와 b가 있습니다

a가 3이고 b가 6이면 Yeah!라고 출력하고싶습니다! 한번 해볼까요?

#include <stdio.h>

int main()
{
    int a = 3;
    int b = 6;
    
    if( a == 3 && b == 6 )
    {
        printf("Yeah!");
    }
}

이렇게 하면 a가 3이고 "그리고" b가 6일때 Yeah!가 출력됩니다.

"그리고" 라는 말이 핵심이니 외워주세요!

 

||과 && 많이 쓰게 될 개념이니 꼭 외워주시길 바랍니다!

 

 

 

 

자 이번에는 if문을 배웠으니 if문과 세트! else문을 배워볼겁니다

else는 그렇지 않을때! 라는 말입니다!

else문에는 규칙이 있는데

꼭 if문의 바로 밑에 써야 한다는 규칙이 있습니다

if(조건)

{

}

else

{

}

이런식으로 말이죠 ㅎㅎ

물론 웬만한 기능은 else문을 안쓰고도 할수 있습니다

예를들어 if문에 조건이 a == 1이었다면

a != 1하면 else문을 안쓰고 if문을 하나 더 써서 해결할수있으니까요

하지만 아래 코드를 봅시다

#include <stdio.h>

int main()
{
    int a = 3;
    
    if(a == 3)
    {
    	printf("A");
        a = 5;
    }
    if(a != 3)
    {
    	printf("B");
    }
}

이렇게하면 어떻게될까요?

첫번째 if문에서 a가 3이니 A를 출력하고 a를 5로만듭니다

그 후 다음 if문에서 a가 3이 아닐때니까 a가 5이므로 여기도 참입니다

그래서 B도 출력하게되죠

하지만 else문을쓰면

#include <stdio.h>

int main()
{
    int a = 3;
    
    if(a == 3)
    {
    	printf("A");
        a = 5;
    }
    else
    {
    	printf("B");
    }
}

이렇게하면 어떻게 될까요?

첫번째 if문에서 a가 3이니까 참이므로 실행이 돼서 A가 출력되고 a변수는 5가됩니다

그리고나서 if문이 참이어서 돌았으므로 else문은 작동하지않고 탈출하게됩니다.

이런 차이가 있겠네요 어떤때 어떤걸 써야할지 예상이 가시나요?

 

 

이번에는 else if를 배워보겠습니다

else if는 같은 else문입니다만

else는 위의 if문이 거짓이라면 도는것이였다면

else if는 위의 if문이 거짓이라면 다른조건을 한번 더 검사하는겁니다

예제 보시죠

 

#include <stdio.h>

int main()
{
    int a = 3;
    
    if( a == 1 )
    {
    	printf("A");
    }
    else if( a == 3 )
    {
    	printf("B");
    }
}

이렇게하면 어떻게 될까요?

if문에 조건이 a가 1일때지만 a는 3이므로

A가 출력되지않고 else if문으로 넘어가

a가 3인지 검사하고 a가 3이므로 B를 출력한후 종료됩니다.

a가 만약 4라면 A와 B모두 출력되지 않겠죠~!

 

else if문은 몇개든 쓸 수 있지만

else문은 단 한개 쓸수있으니 참고해주세요

else if문과 else문을 동시에 사용할수도 있습니다!

이렇게 말이죠!

#include <stdio.h>

int main()
{
    int a = 3;
    
    if( a == 1 )
    {
    	printf("a는 1입니다");
    }
    else if( a == 2 )
    {
    	printf("a는 2입니다");
    }
    else if( a == 3 )
    {
    	printf("a는 3입니다");
    }
    else
    {
    	printf("a는 1또는 2또는 3이 아닙니다");
    }
}

이런식으로도 가능합니다!

이 코드는 쉽게 이해할수있겠죠??

 

 

이번에는 팁을 하나 드릴까 합니다!

if문이나 나중에 배우게될 for문 등은

{}이 중괄호를 쓰는것을 알고 계실겁니다!

이 중괄호를 생략하고 쓸수있다는것 알고 계시나요?

함수에 중괄호는 절대 생략할수없지만

 

함수 안에있는 if문이나 for문등의 중괄호는 생략하고 쓸수 있습니다

그리고 if문이나 for문 등 중괄호를 쓰는곳에서 중괄호를 생략하면

바로 밑 한줄을 중괄호에 넣는것과 같은 효과를 냅니다!

#include <stdio.h>

int main()
{
    int a = 3;
    
    if( a == 3 )
    	printf("A");
    if( a == 5 )
    	printf("B");
}

이렇게 한다면

프로그램이 알아서

#include <stdio.h>

int main()
{
    int a = 3;
    
    if( a == 3 )
    {
    	printf("A");
    }
    if( a == 5 )
    {
    	printf("B");
    }
}

이렇게 해석하신다고 보면 됩니다!

if문 뿐만이 아니라 나중에 배우게 될 다른 기능들에서도

해당되니 기억하면 코드의 가독성을 높일수 있습니다!

( 현업에서는 이 기능이 오히려 코드의 가독성을 낮춘다고 싫어하는 선임분들도 뵐 수 있을겁니다. )

( 개인 차이 에요 )

 

맞다 발음은 if는 이프, else는 엘즈, else if는 엘즈 이프

라고해요 일반적으로!

 

자 그럼 가장 중요한 이론인 if문과 else if문, else문을 배워보았습니다! 수고하셨습니다!