프로그래밍 언어에서는 반복과 조건을 제어하기 위한 기능의 구문이 따로 존재합니다.
이를 제어문이라고 칭하며 오늘 배워볼 것은 제어 문중에서도 조건을 설정하는
조건 제어문에 대해 배워보겠습니다.
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는 변수에 올바른 값이 입력되지 않아 에러가 발생할 경우 기본으로 출력될 에러 메시지를 지정하는 구간입니다.
'개발&코딩 > C' 카테고리의 다른 글
[C] 함수의 구조와 예제 모음 (0) | 2020.09.09 |
---|---|
C언어 반복문 예제와 기초 알아보기 - for,while,dowhile (0) | 2020.09.09 |
C언어의 기초적인 구조와 자료형 그리고 입출력 (0) | 2020.09.09 |
[C] C 중급 2차원 배열과 포인터배열 예제 (0) | 2020.07.27 |
[C] c의 정적변수와 외부변수 (0) | 2020.07.25 |
댓글