1) 제어문
- 프로그램 명령이 실행되는 순서를 제어하는 명령문
2) 제어문의 분류
- 조건문 : 조건이 참인지 거짓인지에 따라서 실행 명령을 분리하는 것
- 반복문 : 조건이 참인 동안 명령들을 반복 수행하는 것
3) 제어문의 종류
- 조건문 : if문, switch문
- 반복문 : for문, while문, do~while문
4) 제어문 구조의 종류
- 순차구조 : 기본 구조로 명령문 하나씩 위에서 아래로 순차적으로 실행
- 선택구조 : 조건식이 참과 거짓에 따라 명령문들을 분리하여 실행
- 반복구조 : 조건식이 참인 동안 명령문들을 실행
1) if 조건문 규칙
- 참과 거짓을 구분하여 실행하는 명령어 블록은 중괄호({})로 표시
- 참과 거짓을 구분하여 실행하는 명령어가 한 개일 경우는 중괄호({}) 생략 가능
- if 조건문의 명령어 블록 내부에 또 다시 if 조건문을 사용할 수 있음(중첩 가능)
- 중괄호({}) 내부에 선언된 변수는 중괄호({})안에서만 사용 가능
- 중괄호({}) 외부에 선언된 변수는 내부에서 사용할 수 있음
- 조건식에는 세미콜론(;)을 붙이지 않음
2) if 조건문 종류
- 단순if()문
- 조건식이 참인 경우 실행되는 블록을 가지는 구조
- if()~else문
- 조건식이 참인 경우와 거짓인 경우 각각의 실행 블록을 가지고 있는 구조
- if()~else if() 문
- 여러 개의 조건식이 참이면 실행되는 블록들을 가지는 구조
- if()~else if() ~ else문
- 여러 개의 조건식이 참이면 실행되는 블록들과 모든 조건식이 거짓인 경우 실행되는 블록을 가지는 구조
1) switch 조건문
- if()~else if()문 또는 if()~else if()~else문의 복잡성의 단순화
- case문, break문, default문으로 구성됨
2) 구조
- switch(변수 또는 수식)
- 변수 : 정수형 또는 문자형
- 수식 : 정수형 또는 문자형 결과값이 나오는 수식
- case문
- "변수 또는 수식"의 값과 case문의 상수 값과 비교
- 1개 이상 사용하며, 콜론(:)과 함께 사용
3) 구조
- defalut 문
- 모든 case 상수값과 "변수 또는 수식"의 값이 동일하지 않으면 실행
- 마지막 1개만 정의하며, 콜론(:)과 함께 사용
- break문
- case문의 실행블록 마지막에 사용
- switch문 외부로 제어가 이동
- 사용하지 않는 경우 순차 실행
1) if문을 이용하는 프로그램과 switch문을 이용하는 프로그램을 각각 작성하시오
100~90(A), 89~80(B), 79~70(C), 69~60(D), 59~(F)
#include <stdio.h>
int main()
{
int jumsu;
char hakjum;
printf("점수는 = ");
scanf_s("%d", &jumsu);
// if문을 이용
if (jumsu >= 90) hakjum = 'A';
else if (jumsu >= 80) hakjum = 'B';
else if (jumsu >= 70) hakjum = 'C';
else if (jumsu >= 60) hakjum = 'D';
else hakjum = 'F';
printf("(if문)학점은 %c 입니다.\n", hakjum);
//switch문을 이용
int num = jumsu / 10; // 0~100점을 나누면 0~10까지 나옴.(정수형이기 때문에 소수점은 버려짐)
switch (num)
{
case 10:
case 9: hakjum = 'A'; break;
case 8: hakjum = 'B'; break;
case 7: hakjum = 'C'; break;
case 6: hakjum = 'D'; break;
default: hakjum = 'F'; break;
}
printf("(switch문)학점은 %c 입니다.\n", hakjum);
}
<Result>
점수는 = 89
(if문)학점은 B 입니다.
(switch문)학점은 B 입니다.