Young & Rich

 

오늘 포스팅할 내용은 C언어에서 조건문입니다.

 

조건문을 시작하기 전 참(true) or 거짓(false) 에 대해서 알아야 합니다.

 

C언어에서 참, 즉 true 의 의미는 0 (NULL) 이 아닌 모든 것을 참이라고 합니다.

 

즉, 1 2 3 -100... 기타 등등 이 모든 것이 참입니다. 거짓은 0 or NULL 만 거짓입니다.

 

자, 그러면 if 문에 대해서 알아보겠습니다.

 

[ if 문 ]

if 문을 쓸 때는 if ( 조건 ) 을 쓰게되는데요. 조건문 안에는 숫자가 들어갈 수 도 있고, 변수가 들어갈 수도 있습니다.

 

<Case 1>
if ( 1 )	// 참

<Case 2>
if ( 0 )	// 거짓

<Case 3>
int num = 0;

if ( num )	// 거짓

if ( num > 0 )

위와 같이 활용할 수 있습니다.

 

if 문을 쓸 때, && || 을 보통 같이 많이 사용하게 되는데요.

 

&& : And 조건. 즉, 조건을 모두 만족 시켜야지만 참이 됩니다.

|| : OR 조건. 조건을 둘 중 하나만 만족 시키면 참이 됩니다.

 

if ( a >= 10 && a <=20 )

-> 변수 a 가 10보다 크면서 20보다는 작아야 하니깐, 10<=a<=20  이 조건과 같은 의미입니다.

 

if ( a != 0 || b != 0 )

-> 변수 a가 0이 아니거나 또는 b가 0이 아닐 때입니다. 즉, a 나 b 둘 중 하나가 0 이 아니면 참이 되는 조건입니다.

#include <stdio.h>

void main()
{
	int num = 1;
    
	while(1)
	{
		if ( num != 0 )			// 처음에 num이 1 이기 때문에 해당 조건문이 통과됩니다.
		{
			printf("숫자 입력 : ");
			scanf("%d", &num);
			printf("입력하신 숫자는 0이 아닌 숫자 : %d 입니다.\n", num);
		}
		else
			break;
	}
}

위의 프로그램은 사용자가 0인 숫자를 입력할 때까지 종료가 되지 않는 간단한 프로그램입니다.

(while 문은 반복문인데 뒤에서 다시 소개하겠습니다.)

 

if문과 같이 엮어 쓰는 문법을 또 소개하겠습니다.

if~else

if~else if 입니다.

 

먼저 else 는 if문이 거짓일 경우 호출됩니다. 예를 들면,

int num = -10;

if ( num > 0 )

     printf("0보다 큰 숫자입니다.\n");

else

     printf("0 보다 작은 숫자입니다.\n");

 

num 이 -10 이므로 거짓이겠죠? 그러면 else 문을 타서 "0보다 작은 숫자입니다" 라는 printf 문이 호출될겁니다.

 

else if 문도 비슷한데요. else if 문을 말로 하면 "바로 인접한 if문이 거짓이면서, 이 조건을 만족한다면" 이라는 뜻입니다.

어떻게 보면 인접한 if 문의 거짓 조건이 &&(AND) 가 된다고 할 수 있습니다.

 

num = 15;

if ( num < 10 )

// 10보다 작은 숫자

else if ( num < 20 )

// 10<num<20

else if (num < 30 )

// 20<num<30

else

// 30 < num

 

위와 같이 활용할 수도 있고, 다양하게 사용 할 수 있습니다.

 

if 문 안에 실행하는 명령어가 한 개일 때는 {} 가 필요 없지만, 2개 이상일 때는 {} 이 꼭 필요합니다.

 

score = 8;

if ( score > 10 )

    printf("안녕하세요\n");

    printf("반갑습니다\n");

 

위와 같은 경우 "반갑습니다" 가 출력됩니다.

 

* 참고로 if~else 문은 가장 인접한 if문의 조건에만 else 가 된다는 점 주의하세요. 실 사용에서도 실수하는 경우가 많습니다. 그래서 {} 영역을 구분해줘서 쓰는게 가장 편하죠.

 

 

if 문을 활용한 연습을 해보시려면 해당 문제를 한 번 해보세요.

1. 숫자를 입력받는다.

2. 입력받은 숫자 범위

60~70 : D

70~80 : C

80~90 : B

90~100 : A

 

해당 숫자 범위를 만족할 경우, 학점을 출력시켜주는 프로그램입니다.

65 점을 입력하면 'D' 학점이라고 출력이 되어야겠죠?

 

연습문제를 if문만 써서 해보셔도 되고, if~else if 문을 써보셔도 됩니다.

같은 문제여도 코딩을 하는 방법은 사람마다 다르답니다. ^^

 

[ switch 문 ]

switch 문은 일단 예제를 보면서 설명을 하겠습니다.

 

switch(변수)
{
	case 값:
	{
		실행문;
		break;
	}
	case 값:
	{
		실행문;
		break;
	}
	case 값:
	{
		실행문;
		break;
	}
	default:
	{
		실행문;
		break;
	}
}

변수의 값이 case 값 과 일치하면 문장이 실행됩니다. 만약에 break; 가 없다면 모든 case 안의 실행문이 실행됩니다.

break; 문은 엄청 많이 쓰는 문법인데, 해당 말 그대로 "멈춘다" : 실행 그만하고 빠져나가자. 의 의미입니다.

 

if 문 처럼 case 문 안에 조건을 넣을 수는 없습니다. 단지 값만 넣을 수 있습니다.

숫자 or 'A' 단일 문자만요.

 

아, default 는 case 문안의 모든 값들이 아니면 실행됩니다. 이제 아래의 예제를 보시면 이해가 되실 겁니다.

#include <stdio.h>

void main()
{
	int score = 90;
    
	switch(grade/10)
	{
		case 9:
		{
			printf("와우, 가수이십니다.\n");
			break;
		}
		case 8:
		{
			printf("노래를 정말 잘 부르시네요.\n");
			break;
		}
		case 7:
		{
			printf("아주 좋은 노래입니다.\n");
			break;
		}
		case 6:
		{
			printf("다시 한 번 도전해보세요.\n");
			break;
		}
		default:
		{
			printf("노래 말고 같이 코딩을 해봐요.\n");
			break;
		}
	}
}

case9:

case8:

{

     명령문;

     break;

}

 

위와 같이 사용할 수도 있습니다. 이런 경우, 2개의 case 둘다 같은 명령문이 실행됩니다.

 

자 그리고, 여기서 C언어에서 조건문 안에 사용하는 수식들이 있는데 많이 사용하는 것만 적어보도록 하겠습니다.

 

수식 의미
<, <=, >, >= 크다, 작다, 크거나 같다, 작거나 같다.
== 같다
!= 다르다
&& 그리고(AND)
|| 또는(OR)
! 부정
ex) !1(참) 거짓을 의미

 

- 요약

C언어에서 0을 제외한 모든 값은 참이다!

if(조건) 조건이 참이면 if문이 실행된다. switch 문은 조건이 아닌 값만 case 로 나눌 수 있다. 근데 필요할 경우 break; 를 꼭 써야한다.

 

지금까지 if 문과 switch 문의 기본 설명이 끝났습니다.

 

그럼 20000.

 

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band