반응형
반응형

C언어 프로그래밍 2번째 시간에는 자료형에 대해서 배웠습니다.

오늘은 자료형을 사용한 조건문을 알아보겠습니다.

조건문이란 자료형을 사용한 연산자에 참, 거짓을 확인하는 제어 로직입니다.

C언어는 <, <=, ==, !=, >, >= 6가지 기본 연산자를 사용합니다.

모든 기준은 외쪽 피연산자를 기준으로 생각하면 됩니다.

'<' 연산자는 오픈되어 있는 방향으로 큰 값을 의미합니다.

'<' 오른쪽이 큽니까?

'>' 왼쪽이 큽니까?

'<' 기본 연산자를 사용해보겠습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	bool 정답 = 0;

	정답 = 9 < 7;

	printf("7은 9보다 큽니까? %d \n", 정답);
	printf("\n");

	return 0;
}

'정답'이란 변수를 bool 자료형을 사용해서 지정합니다.

'9 < 7' 조건문은 9보다 7이 급니까 입니다.

출력 결과 bool 자료형 '정답'에는 0이 지정됩니다.

bool 자료형은 1byte로 0, 1만 사용됩니다.

0은 거짓, 1은 참으로 생각하면 쉽습니다.

 

 

 

출력 결과 7은 9보다 작기 때문에 거짓을 출력합니다.

그럼 전체 조건문을 사용해서 테스트 해보겠습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	bool 정답 = 0;

	int 왼쪽 = 9;
	int 오른쪽 = 7;
	
	정답 = 왼쪽 < 오른쪽;
	printf("9 < 7 =  %d \n", 정답 );
	printf("\n");

	정답 = 왼쪽 <= 오른쪽;
	printf("9 <= 7 =  %d \n", 정답);
	printf("\n");

	정답 = 왼쪽 == 오른쪽;
	printf("9 == 7 =  %d \n", 정답);
	printf("\n");

	정답 = 왼쪽 != 오른쪽;
	printf("9 != 7 =  %d \n", 정답);
	printf("\n");

	정답 = 왼쪽 > 오른쪽;
	printf("9 > 7 =  %d \n", 정답);
	printf("\n");

	정답 = 왼쪽 >= 오른쪽;
	printf("9 >= 7 =  %d \n", 정답);
	printf("\n");

	return 0;
}

6가지 연산자를 사용해서 출력했습니다.

결과는 아래와 같습니다.

왼쪽 기준으로 9는 7보다 크기 때문에 거짓 0이 출력되었습니다.

'>' 조건문에서는 왼쪽 피연산자가 큰 것을 의미하기 때문에 참 1이 출력되었습니다.

이처럼 연산자를 다양한 조건을 분리할 수 있습니다.

이번에는 거짓, 참을 구분할 수 있는 제어문을 알아보겠습니다.

' 9 < 7 ' 조건문에서 9가 7보다 클경우와 작을 경우 모두 필요할 경우가 있습니다.

이럴 경우 if, else if, else 제어문을 사용할 수 있습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	bool 정답 = 0;

	int 왼쪽 = 9;
	int 오른쪽 = 7;
	
	if ( 왼쪽 < 오른쪽 )
		printf("왼쪽 보다 오른쪽이 큽니다. \n", 정답 );
	else
		printf("왼쪽 보다 오른쪽이 작습니다. \n", 정답);

	printf("\n");

	if (왼쪽 > 오른쪽)
		printf("왼쪽 보다 오른쪽이 큽니다. \n", 정답);
	else
		printf("왼쪽 보다 오른쪽이 작습니다. \n", 정답);

	printf("\n");

	
	return 0;
}

조건문을 '왼쪽 < 오른쪽', '왼쪽 > 오른쪽' 2가지로 실행했습니다.

첫번째 조건문에서는 왼쪽 보다 오른쪽이 작기 때문에 거짓이 적용되어 else 하단에 있는 출력이 실행됩니다.

두번째 조건문에서는 왼쪽 보다 오른쪽이 작기 때문에 참이 적용되어 if 하단에 있는 출력이 실행됩니다.

이처럼 if는 참인 경우 실행됩니다.

else는 거짓일 경우 실행됩니다.

 

 

 

 

if 조건문은 여러개의 연산자를 사용해서 참, 거짓을 판단할 수 있습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	bool 정답 = 0;

	int 왼쪽 = 9;
	int 오른쪽 = 7;
	bool 참 = 1;
	bool 거짓 = 0;
	
	if ( (왼쪽 < 오른쪽) && 참 )
		printf("왼쪽 보다 오른쪽이 큽니다. \n", 정답 );
	else
		printf("왼쪽 보다 오른쪽이 작습니다. \n", 정답);

	printf("\n");

	if ( (왼쪽 > 오른쪽) && 거짓 )
		printf("왼쪽 보다 오른쪽이 큽니다. \n", 정답);
	else
		printf("왼쪽 보다 오른쪽이 작습니다. \n", 정답);

	printf("\n");


	if ((왼쪽 < 오른쪽) || 참)
		printf("왼쪽 보다 오른쪽이 큽니다. \n", 정답);
	else
		printf("왼쪽 보다 오른쪽이 작습니다. \n", 정답);

	printf("\n");

	if ((왼쪽 > 오른쪽) || 거짓)
		printf("왼쪽 보다 오른쪽이 큽니다. \n", 정답);
	else
		printf("왼쪽 보다 오른쪽이 작습니다. \n", 정답);

	printf("\n");
	
	return 0;
}

기존 조건문에 '&&', "||' 연산자를 사용해서 연산자를 연결할 수 있습니다.

처음 실행과 다르게 '참' '거짓'을 추가하면 결과가 다르게 출력됩니다.

'&&' 연산자는 AND 연산자로 앞쪽 조건과 AND로 확인 시 모두 1일 경우만 참입니다.

'||' 연산자는 OR 연산자로 앞쪽 조건과 OR로 확인 시 둘 중 하나만 1일 경우 참입니다.

즉 '||' 연산자는 조건문 안에서 한개만 참이면 참으로 실행됩니다.


마지막으로 if문 사용을 최소화 하기 위한 swirch 제어문을 알아보겠습니다.

#include <stdio.h>
#include <limits.h>

int main(void)
{
	
	int 요일을알려줘 = 1;

	switch (요일을알려줘)
	{
	case 1:
		printf("일요일\n");
		break;

	case 2:
		printf("월요일\n");
		break;
	case 3:
		printf("화요일\n");
		break;
	case 4:
		printf("수요일\n");
		break;
	case 5:
		printf("목요일\n");
		break;
	case 6:
		printf("금요일\n");
		break;
	case 7:
		printf("토요일\n");
		break;
	default:
		printf("1 ~ 7까지만 알아요 ㅠㅠ\n");
		break;
	}	
	return 0;
}

switch문은 case, dafault로 분기됩니다.

즉 swirch에서 case에 부합될 경우만 출력을 실행하고, 아닐 경우 dafault 내용을 실행합니다.

'요일을알려줘'에 1이 적용되었기 때문에 출력은 아래와 같습니다.

swirch문에 부합되는 case일 경우만 출력을 실행합니다.

이처럼 다양한 자료형 과 연산자를 사용해서 기본적인 제어 구조 프로그래밍을 적용할 수 있겠습니다.

C언어 조건문에 대해서 마치겠습니다.

감사합니다.

반응형

+ Recent posts