Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

문타쿠, 공부하다.

[C언어 코딩 도장] Unit 26. switch 분기문으로 다양한 조건 처리하기 본문

C언어/C언어 코딩 도장

[C언어 코딩 도장] Unit 26. switch 분기문으로 다양한 조건 처리하기

개발새발 문타쿠 2023. 8. 29. 18:04

switch 분기문은 형식이 균일하며 처리해야 할 조건이 많을 때 사용한다.

26.1 사용자가 입력한 값에 따라 문자열 출력하기

#include <stdio.h>

int main(void)
{
	int num1;

	scanf_s("%d", &num1);

	switch (num1)
	{
	case 1:
		printf("1입니다.\n");
		break;
	case 2:
		printf("2입니다.\n");
		break;
	default:
		printf("default\n");
		break;
	}

	return 0;
}
  • 조건식이 바뀌지 않고 값만 바뀔 때는 switch, 값과 조건식이 모두 바뀔 때는 else if가 적합하다.

26.2 case에서 break를 사용하지 않을 때의 동작 알아보기

#include <stdio.h>

int main(void)
{
	int num1;

	scanf_s("%d", &num1);

	switch (num1)
	{
	case 1:
		printf("1입니다.\n");
	case 2:
		printf("2입니다.\n");
	default:
		printf("default\n");
	}

	return 0;
}
  • case를 break로 중단하지 않으면 그다음에 있는 case, default가 계속 실행되니 주의 => fall through

26.3 case에서 break 생략 응용하기

#include <stdio.h>

int main(void)
{
	int num1;

	scanf_s("%d", &num1);

	switch (num1)
	{
	case 1:
	case 2:
		printf("1 또는 2입니다.\n");
		break;
	case 3:
	case 4:
		printf("3또는 4입니다.\n");
		break;
	default:
		printf("default\n");
	}

	return 0;
}
  • case에서 break를 생략하면 여러 가지 값으로 같은 코드를 실행할 수 있다.

26.4 case 안에서 변수 선언하기

#include <stdio.h>

int main(void)
{
	int num1;

	scanf_s("%d", &num1);

	switch (num1)
	{
	case 1:
	{
		int num2 = num1;
		printf("%d입니다.\n", num2);
		break;
	}
	case 2:
		printf("2입니다.\n");
		break;
	default:
		printf("default\n");
	}

	return 0;
}
  • case 부분 중괄호로 묶어주기

26.5 switch에서 판별할 수 있는 자료형 알아보기

#include <stdio.h>

int main(void)
{
	char c1;

	scanf_s("%c", &c1);

	switch (c1)
	{
	case 'a':
		printf("a입니다.\n");
		break;
	case 'b':
		printf("b입니다.\n");
		break;
	default:
		printf("default\n");
		break;
	}

	return 0;
}
  • switch에서 판별할 변수는 정수 자료형만 사용할 수 있고, 실수 자료형은 사용할 수 없다.