C언어_switch case

P4·2023년 5월 1일
0

C언어 기초

목록 보기
11/23
post-thumbnail

가위바위보


예제코드 (if문을 이용한 가위바위보)

#include <time.h> // 이게 아마 import 역할인 것 같음
#include <stdlib.h> // standard library 
#include <stdio.h> // standard input/output 이라는 뜻

int main(void)
{
    // 가위 = 0, 바위 = 1, 보 = 2
    srand(time(NULL));

    int i = rand() % 3; // 0 ~ 2
    if (i == 0) {
        printf("가위");
    } else if (i == 1) {
        printf("바위");
    } else {
        printf("보");
    } // 지금까지 배운걸론 이렇게 하겠지만...
    return 0;
}

switch문을 이용한 가위바위보

  • switch(값), case 값 <-- case 값은 if = 값과 같은 뜻임

  • default는 else와 같음

  • case에 걸린줄부터 switch문 안의 모든 코드를 실행하기 때문에 멈추길 원하는 구문에 break를 넣어야 함

예제코드 (switch문을 이용한 가위바위보)

#include <time.h> // 이게 아마 import 역할인 것 같음
#include <stdlib.h> // standard library 
#include <stdio.h> // standard input/output 이라는 뜻

int main(void)
{
    srand(time(NULL));
    int i = rand() % 3; // 0 ~ 2

    switch (i) { // i값이 주어졌을 경우에
        case 0: // 이게 0이면
            printf("가위");
            break; // 이게 없으면 조건에 맞는곳부터 나머지 전부 확인도 안하고 실행함
        case 1: // 이게 1이면
            printf("바위");
            break; // break 매우 중요
        case 2:
            printf("보");
            break;
        }
}

case 응용

  • case는 조건에 걸리면 break를 만나기 전까지 switch문 내의 모든 하단 코드를 실행시키므로 전부 다 출력값을 지정해 줄 필요가 없음

예제코드 (등급 나누기)

#include <stdio.h>

int main(void)
{
	int score;
	scanf_s("%d", &score);

	switch (score)
	{
	case 100:
	case 90:
		printf("1등급입니다.\n"); // 90까진 자동으로 1등급
		break;
	case 80:
		printf("2등급입니다.\n"); // 80까진 자동으로 2등급...
		break;
	case 70:
		printf("3등급입니다.\n"); // 70까진 자동으로 3등급...
		break;
	case 60:
	case 50:
	case 40:
	case 30:
	case 20:
	case 10:
	case 0:
		printf("4등급 이하입니다.\n"); // 70점 미만은 전부 4등급 이하
		break;
	default:
		printf("재시험 대상입니다.\n"); // 101점이나 -5점 등이 나왔을때
	}

	return 0;
}
profile
지식을 담습니다.

0개의 댓글