C

C언어(4) 기초4

사회적가치누리 2024. 11. 11. 15:44
목차
12. if else
13. break countinue
14. and or
15. 랜덤
16. switch case
17. 프로젝트

 

 

12. if else

우선 버스를 탄다고 가정하고 나이별로 학생 또는 일반인으로 구분하는

코드를 작성해 봅시다.

int age = 25;
// if (조건) { ... } else { ... }
if (age >= 20)
{
	printf("일반인 입니다.\n");
}	
else
{
	printf("학생입니다.\n");
}

그런데 만약

초등학생 / 중학생 / 고등학생으로 나눌려면 어떻게 해야할까요?

 

이럴때 else if 를 사용합니다.

// 초등학생(8-13) / 중학생 (14-16) / 고등학생(17-19)으로 나누면?
int age = 20;
if (age >= 8 && age <= 13)
{
	printf("초등학생입니다.\n");
}
else if (age >= 14 && age <= 16)
{
	printf("중학생입니다.\n");
}
else if (age >= 17 && age <= 19)
{
	printf("고등학생입니다.\n");
}
else //앞서 작성했던 조건 3개가 만족하지 않으면 이쪽으로
{
	printf("학생이 아닙니다.\n");
}

 

13. break countinue

 

1번 부터 30번 까지 있는 반에서

1번부터 5번까지만 조별 발표를 하고 나머지는 집에 보내는 코드를 작성해보겠습니다.

이때 break를 사용해서 코드를 작성해 볼 수 있습니다.

// 1번부터 30번까지 있는 반에서 1번에서 5번까지 조별 발표를 합니다.
for (int i = 1; i <= 30; i++)
{
	if (i >= 6)
	{
		printf("나머지 학생은 집에 가세요\n");
		break; //for문 탈출
	}
	printf("%d번 학생은 조별 발표 준비를 하세요.\n",i);
}

 

 

이번에는 1번부터 30번까지 있는 반에서 7번 학생은 아파서 결석했다고 가정하고,

7번을 제외하고 6번부터 10번까지 조별 발표를 하는 코드를 작성해봅시다.

이때 continue를 사용합니다.

for (int i = 1; i <= 30; i++)
{
	if (i >= 6 && i <= 10)
	{
		if (i == 7)
		{
			printf("%d번 학생은 결석입니다.\n", i);
			continue; //바로 다음 반복문으로 넘어감. (i++로)
		}
		printf("%d번 학생은 조별 발표 준비를 하세요.\n", i);
	}
}

 

14. and or

 

and 조건은 앞뒤가 모두 조건을 만족할때 실행하고,

 

or 조건은 앞뒤중 한개만 만족해도 실행합니다.

int a = 10;
int b = 11;
int c = 13;
int d = 13;
if (a == b || c == d)
{
	printf("a와 b, 혹은 c와 d의 값이 같습니다.\n");
}
else
{
	printf("값이 서로 다르네요\n");
}

 

 

15. 랜덤

 

랜덤(난수)를 사용하기 위해서는

#include <time.h>
#include <stdlib.h>

를 맨위에 적어줘야 합니다.

 

그리고 무조건 난수 초기화가 필요합니다.

	printf("난수 초기화 이전..\n");
	for (int i = 0; i < 10; i++)
		printf("%d ", rand() % 10);

	srand(time(NULL)); // 난수 초기화
	printf("\n\n난수 초기화 이후..\n");
	for (int i = 0; i < 10; i++)
		printf("%d ", rand() % 10);

초기화를 하지 않으면 똑같은 수가 나오는걸 알 수 있습니다.

 

16. switch case

 

switch문은 값을 받아서 값이 해당하는 경우에 맞도록 출력하는 조건 제어문 입니다.

예를들어서 가위바위보 프로그램을 작성한다고 했을때,

가위일때 어떤값을 출력. 바위일때 어떤 값을 출력. 등등

 

switch(값)

{

   case "가위"

   case"보"

   case"바위"

}

srand(time(NULL));
int i = rand() % 3; // 0 ~ 2 반환
switch (i)
{
case 0:printf("가위\n"); break;
case 1:printf("바위\n"); break;
case 2:printf("보\n"); break;
default:printf("몰라요\n"); break;
}

 

17. 프로젝트

 

이제 앞서 배운 것을 토대로 숫자 맞추기 게임을 만들어 보겠습니다.

 

srand(time(NULL));
int num = rand() % 100 + 1; // 1 - 100 사이의 숫자
int answer = 0; // 정답
int chance = 5; // 기회

while (1) // 1 : 참,0 : 거짓
{
	printf("남은 기회 %d 번 \n", chance--);
	printf("숫자를 맞혀보세요 (1~100) : ");
	scanf_s("%d", &answer);

	if (answer > num)
	{
		printf("DOWN ↓\n\n");
	}
	else if (answer < num)
	{
		printf("UP ↑\n\n");
	}
	else if (answer == num)
	{
		printf("정답입니다 ! \n\n");
		break;
	}
	else
	{
		printf("알 수 없는 오류가 발생했습니다.\n\n");
	}

	if (chance == 0)
	{
		printf("모든 기회를 다 사용하셨네요. 아쉽게 실패했습니다.\n");
		printf("정답은 %d 였습니다.\n",num);
		break;
	}
}

 

'C' 카테고리의 다른 글

C언어(6) 기초6  (0) 2024.11.13
C언어(5) 기초5  (0) 2024.11.12
C언어(3) 기초3  (0) 2024.11.08
C언어(2) 기초2  (0) 2024.11.05
C언어(1) 기초  (0) 2024.11.04