본문 바로가기
개발&코딩/C

C언어 조건제어문 if문/else문 과 switch/case문 예제와 기초

by 우동이 2020. 9. 9.
300x250

프로그래밍 언어에서는 반복과 조건을 제어하기 위한 기능의 구문이 따로 존재합니다.

이를 제어문이라고 칭하며 오늘 배워볼 것은 제어 문중에서도 조건을 설정하는

조건 제어문에 대해 배워보겠습니다.

 

C언어에는 두 가지의 조건 제어문이 존재합니다.

  • if/else문 : 조건만을 설정하는 데에 특화되어있다.
  • switch/case : 주어진 변수를 여러 조건에 비교하는 경우

 


1. a보다 b가 큰 경우의 조건식

#include <stdio.h> // 헤더파일 선언

int main() // main 함수
{
    int a=10;
    int b=20;

    if(a<b)
        printf("a보다 b가 크다")
    else
        printf("a보다 b가 작다")
    
    return 0; // 코드 종료
}

>>> a보다 b가 크다

a와 b 두 변수의 값의 크기에 대한 비교 코드입니다.

a가 b보다 클경우에는 a보다 b가 크다는 메시지가 출력되고

그 이외의 경우에는 a보다 b가 작다는 메시지가 출력됩니다.

 

하지만 여기서 주의할 점은 else문은 a보다 b가작은 경우의 조건으로 설정된 구문이 아닌

a보다 b 가 큰 경우 이외의 모든 경우에 해당하는 조건식이므로

a나 b가 존재하지 않는 경우의 에러까지도 다 포함됩니다.

 


2. 절댓값 출력하기 예제

#include <stdio.h> // 헤더파일 선언

int main() // main 함수
{
    int num=0;
    printf("입력할 정수의 값 >> "); 
    scanf("%d", &num);
    if(num<0)
        printf("%d",-(num));
    else
        printf("%d",num);

    
    return 0; // 코드 종료
}

>>> 입력할 정수의 값 >> 
-5
>>> 5

>>> 입력할 정수의 값 >> 
5
>>> 5

 

절댓값이란 음수와 양수로 구분되지 않는 값의 절대적인 크기를 의미합니다.

위 코드에서는 음수일 때는 양수 값으로 양수일 때는 값의 크기를 그대로 출력하는 조건식이 설정되어있습니다.

 


3. 지하철 무료 이용 검사 코드

#include <stdio.h>

int main()
{
    int age=0;
    printf("6세이하 70세 이상은 지하철 무료이용이 가능합니다 >>");
    scanf("%d",&age);

    if(age<=6 || age>=70)
        printf("무료입장이 가능합니다.");
    else
        printf("무료입장이 불가능합니다 돈을 지불하세요.");

    return 0;
}

>>> 6세이하 70세 이상은 지하철 무료이용이 가능합니다 >>
30
>>> 무료입장이 불가능합니다 돈을 지불하세요.

>>> 6세이하 70세 이상은 지하철 무료이용이 가능합니다 >>
71
>>> 무료입장이 가능합니다.

지하철 무료이용 가능 여부를 판단해주는 코드입니다.

6세 이하 70세 이상만 지하철 무료 이용이 가능하다는 조건식은 다음과 같습니다.

age <=6 || age>=70

 

논리 연산자 대응 표

&& AND
|| OR
! NOT


4. 시험 점수 평균값으로 학점 출력하기

#include <stdio.h>

int main()
{
    double avg=0;

    printf("당신의 학점을 출력합니다 평균 점수를 입력하세요 >> ");
    scanf("%lf", &avg);

    if(avg>=90.0)
        printf("A");
    else if(avg>=80.0)
        printf("B");
    else if(avg>=70.0)
        printf("C");
    else if(avg>=60.0)
        printf("D");
    else
        printf("F");
        
    return 0;
}


>>> 당신의 학점을 출력합니다 평균 점수를 입력하세요 >> 30
F
>>> 당신의 학점을 출력합니다 평균 점수를 입력하세요 >> 70
C
>>> 당신의 학점을 출력합니다 평균 점수를 입력하세요 >> 90
A

 

평균점수를 통해 학점을 출력하는 코드입니다.

여기서 else if라는 구문이 처음으로 나오는데 else if 문은 여러 조건을 설정해야 할 경우

추가 조건을 달수 있는 구문입니다.

위 코드에서도 여러 조건을 if문과 elseif 구문으로 함께 설정했음을 알 수 있습니다.

 


4. 학년별 대학 등록금 책정하기

#include <stdio.h>

int main()
{
    int grade=0;
    

    printf("당신의 학년을 입력하십시오 >> ");
    scanf("%d", &grade);

    switch(grade){
    case 1:
        printf("1학년의 등록금은 200만원입니다");
        break;
    case 2:
        printf("2학년의 등록금은 400만원입니다");
        break;
    case 3:
        printf("3학년의 등록금은 800만원입니다");
        break;
    case 4:
        printf("4학년의 등록금은 1600만원입니다");
        break;
    default:
        printf("축하합니다 대학생이 아니거나 제출할 등록금이 없습니다.");
        break;
    }

    return 0;
}


>>> 당신의 학년을 입력하십시오 >>  3
3학년의 등록금은 800만원입니다
>>> 당신의 학년을 입력하십시오 >>  4
4학년의 등록금은 1600만원입니다
>>> 당신의 학년을 입력하십시오 >>  5
축하합니다 대학생이 아니거나 제출할 등록금이 없습니다.

switch/case 조건문은 위에서 말했듯 입력된 변수에 다양한 조건을 살펴봐야 할 경우 사용됩니다.

즉 한 변수의 여러 케이스를 살펴보는 기능이라고 할 수 있습니다.

 

위에서는 입력받은 학년 변수(grade)가 1에서 4학년까지의 조건이 각각 다 다릅니다.

default는 변수에 올바른 값이 입력되지 않아 에러가 발생할 경우 기본으로 출력될 에러 메시지를 지정하는 구간입니다.

300x250

댓글