본문 바로가기

코린이

Day9 본문

C언어/C언어 기본문법

Day9

winsome99 2022. 11. 8. 23:48
반응형

 

조건문 swith ~ case

오늘은 swith ~ case 문에 대해 설명하겠습니다.

swith 문은 전에 공부했던 if 문과 같은 조건문이지만 if 문에서 <,>,=같은 부등식은 사용이 불가능하다.

 

 

switch ~ case의 원형: 
		 swith(비교할 값)
		 {
			csae 해당 값:		//각 조건
				종속 문장;
				break;
		 }
			default:			//나머지
				종속 문장;
				break;
 

괄호 안에 비교할 값 공간에는 정수, 정수로 변환할 수 있는 값, 정수가 저장된 변수만 작성할 수 있다. 변수의 값에 따라 case에서 실행하는 값이 나온다.(case에 작성되는 값은 반드시 상수로 작성해 줘야 한다.)

swith ~ case 문에서 break 키워드는 해당 문법을 탈출하는 용도로 사용되지만 프로그래머가 의도적으로 break를 작성하지 않는 경우도 있다.


소스코드

#include<stdio.h>

int main(){

    int num;
	printf("1,2,3 중 하나 입력: ");
	scanf("%d",&num);

	switch (num)
	{
	case 1:
		printf("num은 1입니다.\n");
		break;
	case 2:
		printf("num은 2입니다.\n");
		break;
	case 3:
		printf("num은 3입니다.\n");
		break;
	default:
		printf("1~3중 하나를 입력하세요");
		break;
	}
    return 0;
}
 

위에 예제에서 변수를 num으로 해주고 scanf를 사용하여 num의 변수를 입력하면 swith(num)에서 조건이 맞는 값을 case를 찾아 출력해 준다. 만약 위에서 1,2,3 이외에 다른 값을 입력하면 default 키워드를 사용하는데 default는 case에 값이 없으면 실행이 된다.

 

#include<stdio.h>

int main(){

    int num;
	printf("1,2,3 중 하나 입력: ");
	scanf("%d",&num);

	switch (num)
	{
	case 1:
		printf("num은 1입니다.\n");
		break;
	case 2:
		printf("num은 2입니다.\n");
		break;
	case 3:
		printf("num은 3입니다.\n");
		break;
	default:
		printf("1~3중 하나를 입력하세요");
		break;
	}
    return 0;
}
 

다음 코드는 1부터 4중에 하나를 입력하면 입력값보다 작은 수를 출력한다.

#include<stdio.h>

int main(){

  int num;

	printf("입력: ");
	scanf("%d",&num);

	switch (num)
	{
	case 4:
		printf("4");
		
	case 3:
		printf("3");
		
	case 2:
		printf("2");
		
	case 1:
		printf("1");
	}
    return 0;
}
 
 
사진 삭제

출력 화면

 

오늘 배운 내용으로 응용

Q1) 숫자를 입력받고 숫자가 3의 배수일 때는 참, 아닐 때는 거짓을 출력하는 프로그램 작성

#include<stdio.h>

int main(){

    int num;
	printf("\n입력: ");
	scanf("%d",&num);
	switch (num % 3) {
	case 0:
		printf("참");
		break;
	default:
		printf("거짓");
		break;
	}
    return 0;
}
 

Q2)

#include<stdio.h>

int main(){

    int kor, math, eng;
	double avg;
	
	printf("국어: ");
	scanf("%d",&kor);
	printf("수학: ");
	scanf("%d", &math);
	printf("영어: ");
	scanf("%d", &eng);

	avg = (double)(kor + math + eng) / 3;
	printf("\n평균: %.2f\n", avg);

	switch ((int)avg / 10)
	{
	case 10:
	case  9:
		printf("등급: A\n");
		break;
	case 8:
		printf("등급: B\n");
		break;
	case 7:
		printf("등급: C\n");
		break;
	case 6:
		printf("등급: D\n");
		break;
	default :
		printf("등급: F\n");
		break;
	}
    return 0;
}
 

저번에 배웠던 if 문을 사용하여 등급을 구하는 것에서 swith ~ case 문으로 바꿔 푼 문제이다.

 
사진 삭제

출력 화면


(이 정도는 이제 쉽게 하는 거 같다ㅎㅎㅎ)

 

반응형

'C언어 > C언어 기본문법' 카테고리의 다른 글

Day11  (0) 2022.11.11
Day10  (0) 2022.11.10
Day8  (0) 2022.11.07
Day7  (0) 2022.11.04
Day6  (0) 2022.11.04
Comments