C언어 공부하기/C언어 기초 공부

C언어 코딩 공부 #4 : 선택제어문

HawordFREAKEK 2019. 2. 26. 15:33
반응형


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
#include<stdio.h>
void main() 
{
    int a = 90, b = 4;
    if (a <= 90)
    {
        printf("A");
    }
    else if (a <= 80)
    {
        printf("B");
    }
    else
    {
        printf("그 외");
    }
    switch (b)
    {
    case 1:printf("1입니다."); break;
    case 2:printf("2입니다."); break;
    case 4:printf("4입니다."); break;
    default:printf("그 외");break;
    }
}
 
cs

선택제어문에는 대표적으로 if문과 switch문이 있습니다. 위 예시는 보기 쉬우시라고 하드코딩해놨습니다.


1. if 문

if 문의 대표적인 형태는
    if (조건문)
    {
        조건문이 참일 때, 수행하게 되는 코드
    }
이렇습니다.


단계를 나누고 싶으시면 위와 같이 else if 와 else 문을 추가하시면 됩니다.
    else if (조건문) // 위에 if문에서 조건문이 참이면 실행되지 않음
    {
        조건문이 참일 때, 수행하게 되는 코드
    }

위 예제 코드를 보시면 a가 90이기 때문에 5번째 if 문과 9번째 else if 문 두가지에 걸려서 AB가 나올 것 처럼 보이지만 5번째 if문에서 한 번 걸리기 때문에, 한 번 if 문이 실행되면 그 밑으로 내려오지 않습니다. a에 85를 입력하면 5번째 if문에서 참이 아니여서 그대로 밑에 else if 문에 들어가서 B가 출력되겠죠. 

이런 제어문에선 default(기본) 값이 가장 중요합니다. 만약 입력을 받아 반별하는 제어문 같은 경우 예상외의 입력을 받게되면 시스템 오류가 생기기 때문입니다.

if문에선 그럴 때 else를 사용합니다.

    else
    {
        위에서 하나도 해당이 안됬을시 실행되는 코드
    }

else 문은 if와 else if와는 다르게 위에서 아무것도 해당이 안되면 실행되는 문장이기 때문에 위 두 문장과는 다르게 조건문이 필요 없습니다. 이렇게 제작자의 예상을 벗어난 입력에도 어느부분 대처를 할 수 있습니다.


2. switch case 문

switch case문은 거의 딱딱 떨어지는 입력을 받았을 때, 자주 씁니다. if 문이 자유롭게 입력해서 그 범위 내에서 필터링해서 코드를 수행한다면 switch case문에서는 계산기에 사칙연산 부분이나 1번,2번,3번 같이 정해진 값을 입력받을때 주로 사용합니다.
대표적인 형태는
    switch (받아서 판별할 변수)
    {
    case 변수의 형태:수행할 코드break;
    default:수행할코드;break;
    }
위 예제에 17번째 줄 부터 같이 보시면 더 편할 것 같습니다.
예제에 나와있는 17~23번째 줄을 말로 풀이해보자면,
" 앞으로 b라는 변수에 뭐가 들어왔는지를 case문에 비교하여 해당되는 코드를 실행한다 "
이렇게 되겠네요.
break 문과 goto문 같은 코드 줄을 강제로 왔다갔다 시키는 함수는 코드가 길어질 시에 잦은 오류를 만들어내기 때문에 사용을 자제하는게 좋은데 필요할땐 써주시는게 편합니다.(개인적으로 goto문은 진짜 안쓰려고 노력합니다.)

여기서도 가급적이면 default로 기본값을 설정해주시는게 나중에 실행했을 때, 보기도 좋고 오류도 덜 합니다.




이렇게 간단하게 if문과 switch문에 대해서 알아보았습니다.

더 자세한건 예제문제에서 자세히 설명해드리겠습니다.

궁금하신점은 댓글로 부탁드려요 ㅎㅎ



반응형