본문 바로가기

프로그래밍/C, C++

[C, C++ 기초 강좌] #3. C언어 완전 초보를 위한 - 조건문과 반복문

728x90
반응형

[C, C++ 기초 강좌] #3. C언어 완전 초보를 위한 - 조건문과 반복문


 

참, 거짓을 선택해서 프로그램을 만들 때 조건문을 사용합니다.

 

예를 들면 물건을 살 때 필요한 돈이 있는지 없는지 또는 정답인지 아닌지 등등

 

조건에 맞춰서 결정을 내리는걸 조건문이라고 합니다.

 

if문과 switch문이 조건문에 해당하죠.

 

간단하게 필요한거만 설명하며! 시작하겠습니다~

 

 

 

 


오늘의 목표

 

조건문과 반복문을 활용하여 선택 프로그램을 만들 줄 안다.

 

 

 

 


if문이란

 

if는 우리말로 만약이라는 뜻을 가지고 있습니다.

 

여기서도 비슷한 의미를 가지는데 쉽게말하면if가 참이면 다음 문장을 실행한다는 의미가됩니다.

 

#include<stdio.h>
int main(void)
{
	int a = 4, b = 1;

	if (a > b)
		printf("참 입니다.\n");
	
	printf("실행완료.\n");
	return 0;
}

 

위 코드를 통해 알 수 있듯이 if()안의 조건식이 참이 되면 printf("참 입니다.\n");가 실행됩니다.

 

이런 형태로 만들 수 있다는 것만 알면 솔직히 오늘 글은 끝이지만! 조금 더 설명해보겠습니다.

 

#include<stdio.h>
int main(void)
{
	int a = 4, b = 1;

	if (a > b)
	{
		printf("참 입니다.\n");
		printf("잘하셨습니다.\n");
	}
	
	printf("실행완료.\n");
	return 0;
}

 

주의! 한 줄은 그냥 써도 되지만 두줄부터는 {} 중괄호 안에 포함되게 적어야 합니다.

 

그렇지 않으면 if문과는 별개의 문장이 돼버리기 때문에 신경 써줘야 하죠

 

#include<stdio.h>
int main(void)
{
	if (1)
	{
		printf("참 입니다.\n");
		printf("잘하셨습니다.\n");
	}
	
	printf("실행완료.\n");
	return 0;
}

 

그리고 조건식이 1이거나 true일 경우 반드시 참으로 인식합니다. 또한 0, false일 경우 반드시 거짓으로 인식합니다.

 

if문에서는 바로 1이라던가 true 이렇게 쓰이지는 않습니다. 이렇게 쓸빠에 그냥 쓰는 게 낫죠

 

다만 변수값이 참, 거짓일 경우를 따지게 된다면

 

#include<stdio.h>
int main(void)
{
	int a = true;

	if (a==1)
	{
		printf("입장하실 수 있습니다.\n");
	}
	else
		printf("입장하실 수 없습니다.\n");
	
	return 0;
}

*ps. =는 대입한다는 의미입니다. a=true는 a가 참이라는 거고 a==1을 하게 되면 a가 참인 경우라고 생각하시면 됩니다.

 

이런 식으로 a==1 , a==0 이런식으로 쓸 수 있습니다.

 

주의! if(a=1)라고 하게 되면 a는 참이 되므로 주의해야 합니다.

 

또한 if(a=5) 이런 식으로 적는 것도 a가 참이 되므로 a가 5일 경우 참으로 만들고 싶다면 a==5라고 써야 합니다.

 

#include<stdio.h>
int main(void)
{
	int a = 160, b = 50;	// a = 키, b = 몸무게

	if (a>=160&&b>=50)
	{
		printf("입장하실 수 있습니다.");
	}
	
	
	return 0;
}

 

*ps. && = and, || = or입니다.

 

*ps. a&&b = a와 b 둘 다 참일 때 참, a||b = a 또는 b 하나 이상 참일 때 참

 

이런 논리식 또한 if문에 사용할 수 있습니다.

 

 

 

 


if - else란?

 

여기서 else는 거짓인 경우라고 생각하시면 됩니다.

 

#include<stdio.h>
int main(void)
{
	int a = 150, b = 50;	// a = 키, b = 몸무게

	if (a >= 160 && b >= 50)
	{
		printf("입장하실 수 있습니다.\n");
	}
	else
		printf("입장하실 수 없습니다.\n");
	
	return 0;
}

 

a가 150이라서 a>=160 조건에 거짓이 됐죠?

 

그래서 else로 빠지게 되면서 printf("입장하실 수 없습니다."); 가 실행된 겁니다.

 

if - else문은 조건 연산자를 통해서도 나타낼 수 있습니다.

 

조건 연산자란 아래 코드의 형태를 띠고 있습니다.

 

#include<stdio.h>
int main(void)
{
	int a = 150, b = 50;	// a = 키, b = 몸무게

	(a >= 160 && b >= 50) ? printf("입장하실 수 있습니다.\n") : printf("입장하실 수 없습니다.\n");

	return 0;
}

 

조건식을 적고 참이면 앞의 문장, 거짓이면 뒤의 문장이 실행되는 의미를 가집니다.

 

 

 

 


switch문이란?

 

if - else 문과 비슷하지만 실행 가능한 문장이 많거나

 

하나를 선택하게 되는 문장이라면 switch문을 사용하는 것이 좋습니다.

 

#include<stdio.h>
int main(void)
{
	int a;

	printf("숫자를 입력하십시오.:");
	scanf_s("%d", &a);

	switch (a)
	{
	default:
		printf("없는 숫자입니다.\n");
		break;
		
	case 0:
		printf("0을 입력하셨습니다.\n");
		break;
	case 1:
		printf("1을 입력하셨습니다.\n");
		break;
	case 2:
		printf("2을 입력하셨습니다.\n");
		break;
	case 3:
		printf("3을 입력하셨습니다.\n");
		break;
	}

	return 0;
}

 

switch문은 위와 같은 형태를 뛰고 있고 각 case 다음 break를 꼭 써줘야 합니다.

 

만약 break가 없다면 어떻게 될까요?

 

case 0에 break가 없다고 치고 0을 입력하게 되면 case1:까지 실행하게 됩니다.

 

그러니 꼭 break는 입력해야 합니다.

 

주의! case절에는 반드시 상수여야 하며 변수, 수식, 문자열은 사용할 수 없습니다.

 

 

조건문은 이 정도만 알면 충분합니다

 

😆

 

바로 반복문을 이어서 하겠습니다~

 


 


반복문이란?

 

말 그대로 반복해서 실행한다는 의미로 생각하시면 됩니다.

 

지금까지 우리는 코드를 짜서 빌드하고 실행하면 한 번의 실행 후 종료되었죠?

 

이제는 반복문을 사용해서 프로그램을 만들면 어떻게 될까요?

 

while문과 for문 정도가 반복문이라서 생각하시면 됩니다.

 

 

 

 


 

while문

 

#include<stdio.h>
int main(void)
{
	int a = 0;
	while (a<=10)
	{
		printf("Hello World! (%d)\n", a);
		a++;
	}
	return 0;
}

 

while문은 while()안의 조건식이 참이면 반복하는 형태를 가졌습니다.

 

위 코드를 실행하면 어떻게 될까요?

 

 

*ps. 여기서 a++;는 a 현재 값에서 1을 더하는 의미를 가졌습니다.

 

a가 1씩 증가하여 10이 되면 조건식이 거짓이 되어 반복을 멈추고 종료됩니다.

 

while은 이런 형태를 가졌습니다.

 

조건식에 1이나 true를 넣으면 어떻게 될까요?

 

강제 종료가 없을 경우에는 아마 메모리가 꽉 찰 때까지 계속 반복할 겁니다.

 

반복문으로 하는 가장 많이 하는 프로그램이 구구단 만들기입니다.

 

만들어볼까요?

 

#include<stdio.h>
int main(void)
{
	int n = 0;
	int i = 1;

	printf("출력하고 싶은 단을 입력:");
	scanf("%d", &n);

	while (i<=9)
	{
		printf("%d * %d = %d\n", n, i, n*i);
		i++;
	}
	return 0;
}

 

 

c언어 시험에서 반복문 하면 나오는 문제가 구구단 만들기죠 ㅋㅋㅋㅋ

 

이런 식으로 반복문을 만들 수 있습니다.

 

 

 


do - while 문

 

 

do - while 문은 반복 조건을 끝에 두어 무조건 한 번은 실행 하고 조건을 본다는게 while문과의 차이가 있습니다.

 

만약 한번은 실행해야 하는 프로그램을 짜야한다면 do while문을 사용하면 좋겠죠

 

#include<stdio.h>
int main(void)
{
	int a;
	do
	{
		printf("1. hello\n");
		printf("2. bye\n");
		printf("3. nice\n");
		printf("실행할 숫자를 입력하시오:");
		scanf_s("%d",&a);
	} while (a < 1 || a>4);
	
	switch (a)
	{
	default:
		break;
	case 1:
		a = 1;
		break;
	case 2:
		a = 2;
		break;
	case 3:
		a = 3;
		break;
	}

	printf("입력하신 숫자는 %d 입니다.\n", a);

	return 0;
}

 

제가 간단하게 짜 봤습니다. 보통 설치 프로그램이라던지 보시면 실행할 순번을 선택해라 할 때 다른 번호를 입력하면

 

오류가 나겠죠? 그때 다시 반복하여 입력할 수 있도록 하는 방법도 있습니다.

 

실행하면 어떻게 될까요?

 

 

처음에는 9를 입력하였는데 반복돼서 다시 입력하라 하죠? 

 

조금 더 코드를 다듬는다면 목록은 반복되지 않고 입력하시오만 반복할 수도 있겠죠!

 

 

 

 


for문

for문은 정해진 횟수만큼 반복할 때 쓰기 편합니다.

 

코드를 보면서 이해하는 좋겠죠!

 

#include<stdio.h>
int main(void)
{
	int a;
	for (a = 0; a < 10; a++)
		printf("%d\n", a);

	return 0;
}

 

 

for문은 for(초기식; 조건식; 증감식)

반복문

 

이런 식의 형태로 이뤄져 있습니다.

 

초기식을 받고 조건식을 확인하고

 

반복하는 문장을 실행 후 증감식을 실행하는 순서로 이뤄집니다.

 

*ps. 초기식은 쓰지 않으셔도 됩니다.

 

주의! for( ; ;) 이렇게 입력하면 무한루프가 이뤄져서 강제 종료를 하지 않으면 오류가 생깁니다.

 

🤣

 

오늘은 조건문과 반복문을 같이 봤는데 반복문을 하기 위해선 조건문도 알아야 하기에 같이 해봤습니다.

 

이렇게 코드의 형태를 보면서 어떻게 쓰는지만 알면 다 할 줄 알게 됩니다 :)

 

그럼 여기서 마치겠습니다!

728x90
반응형