6장 제어문의 기본문법

JongseokLee·2021년 7월 30일
0

C 프로그래밍 기초

목록 보기
6/15
post-thumbnail

6장 제어문의 기본문법

1. 제어문의 개념 이해하기

1) 제어문

  • 프로그램 명령이 실행되는 순서를 제어하는 명령문

2) 제어문의 분류

  • 조건문 : 조건이 참인지 거짓인지에 따라서 실행 명령을 분리하는 것
  • 반복문 : 조건이 참인 동안 명령들을 반복 수행하는 것

3) 제어문의 종류

  • 조건문 : if문, switch문
  • 반복문 : for문, while문, do~while문

4) 제어문 구조의 종류

  • 순차구조 : 기본 구조로 명령문 하나씩 위에서 아래로 순차적으로 실행
  • 선택구조 : 조건식이 참과 거짓에 따라 명령문들을 분리하여 실행
  • 반복구조 : 조건식이 참인 동안 명령문들을 실행

2. if 조건문 이해하기

1) if 조건문 규칙

  • 참과 거짓을 구분하여 실행하는 명령어 블록은 중괄호({})로 표시
  • 참과 거짓을 구분하여 실행하는 명령어가 한 개일 경우는 중괄호({}) 생략 가능
  • if 조건문의 명령어 블록 내부에 또 다시 if 조건문을 사용할 수 있음(중첩 가능)
  • 중괄호({}) 내부에 선언된 변수는 중괄호({})안에서만 사용 가능
  • 중괄호({}) 외부에 선언된 변수는 내부에서 사용할 수 있음
  • 조건식에는 세미콜론(;)을 붙이지 않음

2) if 조건문 종류

  • 단순if()문
    • 조건식이 참인 경우 실행되는 블록을 가지는 구조
  • if()~else문
    • 조건식이 참인 경우와 거짓인 경우 각각의 실행 블록을 가지고 있는 구조
  • if()~else if() 문
    • 여러 개의 조건식이 참이면 실행되는 블록들을 가지는 구조
  • if()~else if() ~ else문
    • 여러 개의 조건식이 참이면 실행되는 블록들과 모든 조건식이 거짓인 경우 실행되는 블록을 가지는 구조

3. Switch 조건문 이해하기

1) switch 조건문

  • if()~else if()문 또는 if()~else if()~else문의 복잡성의 단순화
  • case문, break문, default문으로 구성됨

2) 구조

  • switch(변수 또는 수식)
    • 변수 : 정수형 또는 문자형
    • 수식 : 정수형 또는 문자형 결과값이 나오는 수식
  • case문
    • "변수 또는 수식"의 값과 case문의 상수 값과 비교
    • 1개 이상 사용하며, 콜론(:)과 함께 사용

3) 구조

  • defalut 문
    • 모든 case 상수값과 "변수 또는 수식"의 값이 동일하지 않으면 실행
    • 마지막 1개만 정의하며, 콜론(:)과 함께 사용
  • break문
    • case문의 실행블록 마지막에 사용
    • switch문 외부로 제어가 이동
    • 사용하지 않는 경우 순차 실행

4. 단원 실습

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 입니다.
profile
DataEngineer Lee.

0개의 댓글