C언어_4

gimmicks_u·2022년 3월 31일
0

C언어

목록 보기
4/13
post-thumbnail

분기문

switch문

if ~ else if ~ else을 이용하여 많은 조건을 수행한다면 가독성은 떨어지고, 복잡도가 증가하게 된다. 이러한 단점을 보완한 것이 switch문이다

switch(n)
{
	case 1:
    	수행1;
        break;
    case 2:
    	수행2;
        break;
        .
        .
        .
    case n:
    	수행n;
        break;
}

전화번호단축키 예제

#include <stdio.h>
int main()
{
    int shortcut;
    printf("단축키를 입력하세요 : ");
    scanf("%d", &shortcut);
    switch(shortcut)
    {
        case 1:
            printf("딸 : 010-xxxx-xxxx\n");
            break;
        case 2:
            printf("아들 : 010-xxxx-xxxx\n");
            break;
        case 3:
            printf("남편 : 010-xxxx-xxxx\n");
            break;
        default:
            printf("해당 단축키가 없습니다.\n");
            break;
    }
    return 0;
}

월에 따라 계절을 알려주는 예제

#include <stdio.h>
int main()
{
    int month;
    printf("Month : ");
    scanf("%d", &month);
    switch(month)
    {
        case 12:
        case 1:
        case 2:
            printf("겨울입니다\n");           
            break;
        case 3:
        case 4:
        case 5:
            printf("봄입니다\n");
            break;
        case 6:
        case 7:
        case 8:
            printf("여름입니다\n");
            break;
        case 9:
        case 10:
        case 11:
            printf("가을입니다\n");
            break;

        default:
            printf("잘못 입력하셨습니다.\n");
            break;
    }
    return 0;
}

모든 케이스에 계절을 출력할 필요 없이break되지 않으면 다음 케이스로 넘어가는 특성을 이용해 코드를 작성할 수 있다.


점수를 입력 받아 학점을 출력해주는 예제
91 ~ 100점 : A 학점
81 ~ 90점 : B 학점
71 ~ 80점 : C 학점
61 ~ 70점 : D 학점
0 ~ 60점 : F 학점

  1. if문 이용
#include <stdio.h>

int main(void)
{
    int a;
    // char grade;
    printf("점수를 입력하세요 : ");
    scanf("%d", &a);
    if (a <= 100 && a>=91)
    {
        printf("A 학점\n");
    }
    else if (a <= 90 && a >= 81)
    {
        printf("B 학점\n");
    }
    else if (a <= 80 && a >= 71)
    {
        printf("C 학점\n");
    }
    else if (a <= 70 && a >= 61)
    {
        printf("D 학점\n");
    }
    else if (a <= 60 && a >= 00)
    {
        printf("F 학점\n");
    }
    else
    {
        printf("정확한 점수를 입력하세요\n");
    }
    return 0;
}

2.switch문 이용

#include <stdio.h>

int main(void)
{
    int a, b;
    printf("점수를 입력하세요 : ");
    scanf("%d", &a);
    b = (a - 1) / 10;
    switch(b)
    {
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("F 학점입니다.\n");
            break;
        case 6:
            printf("D 학점입니다.\n");
            break;
        case 7:
            printf("C 학점입니다.\n");    
            break;
        case 8:
            printf("B 학점입니다.\n");
            break;
        case 9:
            printf("A 학점입니다.\n");
            break;
            
        default:
            printf("점수를 잘 입력하세요.\n");
    }
    return 0;
}

반복문

while문

while(반복 조건)
{
	반복 문장
}

반복 조건이 참인 동안 반복 문장을 반복 수행한다.

#include <stdio.h>

int main(void)
{
    int i = 0;
    while (i < 5)
    {
        printf("Programming\n");
        i++;
    }
    return 0;
}
Programming
Programming
Programming
Programming
Programming

n을 입력받아 n구단을 출력하는 예제

#include <stdio.h>

int main(void)
{
    int i = 1, a;
    printf("n구단 : ");
    scanf("%d", &a);
    
    while (i < 10)
    {
        printf("%d * %d = %d\n",a ,i, i * a);
        i++;
    }
    return 0;
}

for문

for(초기문; 조건문; 증감문)
{
	반복 문장
}

while문과 거의 동일하지만, 초기문, 조건문, 증감문을 한 줄에서 볼 수 있어 가독성이 더 좋다.

#include <stdio.h>

int main(void)
{
    int i;
    for(i = 0; i < 5; i++)
    {
        printf("Hello world!\n");
    }
    return 0;
}
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!

n을 입력받아 n까지의 합을 출력하는 예제

#include <stdio.h>

int main()
{
    int a, n, i;
    printf("정수를 입력하세요 : ");
    scanf("%d",&n);

    a = 0;
    for(i = 1; i < n + 1; i++)
    {
        a += i;
    }
    printf("%d\n", a);
    
    return 0;
}
profile
Done is better than perfect

0개의 댓글