본문 바로가기
c언어 개발일지

[나도 코딩 C언어] 조건 / 분기

by 노랑사랑팽이 2022. 8. 12.

✏️ 조건 / 분기

🔎 if / else

#include <stdio.h>

int main(void)
{
	//버스를 탄다고 가정. 학생/일반인 구분(일반인 : 20세)
	if (조건) { } else { }
	int age = 25;
	if (age >= 20)
		printf("일반인 입니다.\n");
	else
		printf("학생입니다.\n");
    
    return 0;
}

 

🔎 if / else if/ else

#include <stdio.h>

int main(void)
{
	//초등학생 8~13/중학생 14~16/고등학생 17~19으로 나누면?

	int age = 25;
	if (age >= 8 && age <= 13)
	{
		printf("초등학생 입니다.\n");
	}
	else if (age >= 14 && age <= 16)
	{
		printf("중학생 입니다.\n");
	}
	else if(age >= 17 && age <= 19)
	{
		printf("고등학생 입니다.\n");
	}
	else
	{
		printf("학생이 아닌가봐요.\n");
	}
    
    return 0;
}

 

🔎 break

#include <stdio.h>

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

 

🔎 continue

#include <stdio.h>

int main(void)
{
	// 1번부터 30번까지 있는 반에서 7번 학생은 아파서 결석
	// 7번을 제외하고 6번부터 10번까지 조별 발표를 하세요.
	for (int i = 1; i <= 30; i++)
	{
		if (i >= 6 && i <= 10)
		{
			if (i == 7) 
			{
				printf("%d번 학생은 결석입니다.\n", i);
				continue;
			}
			printf("%d번 학생은 조별 발표 준비를 하세요\n", i);
		}
	}
	printf("나머지 학생은 집에 가세요\n");
    
    return 0;
}

✏️ 가위바위보

#include <stdio.h>
#include <time.h>

int main(void)
{
	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;
	}
    
    return 0;
}

 

✏️ 프로젝트

🔎 숫자 맞히기(up & down)

#include <stdio.h>
#include <time.h>

int main(void)
{
	srand(time(NULL));
	int num = rand() % 100 + 1; // 1~100사이의 숫자

	printf("숫자 : % d\n", num);
	int answer = 0; //정답
	int	chance = 5; //기회

	while (chance > 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");
		}
	}

	return 0;
}

 

 

🍏 KEEP, 습관 중요한 것

break와 continue 부분은 정보처리기사 프로그래밍언어 문제에서도 단골로 나온다.

원하는 동작을 구현할 수 있도록 break/continue을 잘 활용해 코드를 짜야할 것 같다.

 

🍎 PROBLEM, 이슈, 에러, 오류

rand 난수 발생시키기 위해서는 #include을 해줘야 한다.

그리고 함수 main이름이 같으면 다른 파일이어도 console결과값이 나오지 않는다.

이점을 유의해야 한다.

 

 🍉 TRY 시도

기회를 주는 만큼 반복하도록 구현할때, 

printf문에 바로 chance--을 쓴다는 점이 새롭게 느껴졌다.

코드를 한줄이라도 이렇게 줄일 수 있구나 싶다.

댓글