본문 바로가기

C Langauage

Chapter 5. 제어문

Chapter 5. 제어문
1. 제어문
 - 제어문
  · 조건의 결과 값에 따라서 프로그램의 수행 순서를 제어하거나 문장들의 수행 횟수를 조정하는 문장
  · 제어문은 크게 조건문, 반복문, 분기문으로 나눌 수 있다.

 

2. 조건문

 - if
  · if

 if(조건문)
         문장;

 

 

 if(조건문)
 {
         문장;
 }

  ◦ if 다음의 ()안에 있는 조건식이 참이면 문장을 수행하고 조건식이 거짓이면 수행하지 않는다.
  ◦ if문은 여러 개를 사용할 수 있다.
  ◦ 만일 if문에서 조건식이 참일 때 수행할 문장이 여러 개면 문장을 {}안에 넣는다.
   ※ 복합문 : {}

  ◦ if 문이 수행되는 과정

  · if else

 if(조건식)
         문장1;
 else
         문장2;

 

 

 

 

 if(조건식)
 {
         문장1;
 }
 else
 {
         문장2;
 }

  ◦ if문의 조건식이 만족할 때는 if 다음에 있는 문장1을 수행하고 만족하지 않을 때는 else 다음에 있는 문장2를 수행한다.
  ◦ 만일 if문에서 조건식이 참일 때 수행할 문장이 여러 개면 문장을 {}안에 넣고 else문이 수행할 문장이 여러 개면 문장을 {}안에 넣어야한다.
  ◦ else문은 조건을 쓸 수 없다

  ◦ if else 문이 수행되는 과정

 

  · 다중 if문(if, else if, else)

 if(조건식1)
         문장1;
 else if(조건식2)
         문장2;
 else if(조건식3)
         문장3;
 ………
 else
         문장n;

  ◦ if else문에서 else 다음에 다시 if를 사용하는 문장을 다중 if라고 한다.
  ◦ 다중 if문은 위에 있는 조건부터 차례대로 비교하면서 내려오게 되는 데 조건이 참이 되어 명령을 수행하게 되면 아래 있는 나머지 조건은 비교하지 않고 다중 if문 전체를 빠져 나온다.

  ◦ 조건이 모두 포함되어 있다면 else 문을 꼭 쓸필요는 없다.
  ◦ 다중 if 문이 수행되는 과정

else 문이 있는 경우 

else 문이 없는 경우 

 

 

 

 - switch

 switch(정수식)
 {
 case 정수값1 :
         문장1;
         break;
 case 정수값2 :
         문장2;
         break;
         ……
 default :
         문장n;
         break;
 }

  · 정수식의 값에 따라서 여러 가지 중 하나를 실행하는 조건문
  · 여러 가지 중 하나로 분기해 다중분기라고도 한다.
  · 변수 값을 case에서 찾아 명령을 수행하는 조건문으로 해당하는 값이 없을 경우 default의 명령문을 수행한다.
     ※ case와 명령문 사이에는 콜론(:)을 써야한다.

  ◦ switch case문이 실행되는 과정

  ◦ switch case문이 실행되는 과정

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 - switch문과 if~else문의 비교
  · switch문은 값을 비교해 하나만 일치하는 경우를 수행하는 반면에 if~else문은 조건을 비교해 범위 내에서 일치하는 것을 찾아 수행하기 때문에 if~else문이 수행 범위가 더 넓다는 장점을 가지고 있다.
  · switch문을 사용했을 때는 조건문을 보다 더 간결하게 작성할 수 있다는 장점을 가지고 있다.
  · switch문도 if문과 동일하게 중첩이 가능하다.

  · switch문과 if~else문의 비교

 

3. 반복문
 - 하나 이상의 문장을 두 번 이상 반복 실행하기 위해 구성하는 함수
 - 반복문 또한 조건문과 동일하게 중첩이 가능하다.
 - for

 for(초기값 ; 조건 ; 증감값)
 {
         명령문1;
         명령문2;
         ……
         명령문n;
 }

  · 초기값 : 본격적으로 반복을 시작하기에 앞서 딱 한번 실행하는 값
  · 조건 : 매 반복의 시작에 앞서 실행되며, 그 결과를 기반으로 반복 유무를 결정하는 값
         주로 비교연산자가 많이 사용된다. 
  · 증감식 : 매 반복 실행 후 마지막에 연산이 이루어지는 식
  · 초기값, 조건, 증감식은 생략이 가능하다.
     ※ 초기값, 조건, 증감식을 생략할 경우 세미콜론(;)은 반드시 써줘야한다.
  · for문이 실행되는 과정

 

 - while

 while(조건)
 {
         명령문1;
         명령문2;
         ……
         명령문n;
 }

  · 괄호(())안의 조건이 참일 경우만 중괄호({})안의 명령문이 반복 수행된다.

  · 명령문이 한 개일 경우 중괄호를 생략가능하다.
  · 먼저 조건이 맞는지 판단한 후 실행
  · while문이 실행되는 과정

 

 - do ~ while
  · while문과 거의 동일한 함수이다.
  · 차이점
  ◦ 명령문을 먼저 한번 실행한 후 조건이 맞는지 판단하기 때문에 조건 만족 여부와 관계없이 한번은 실행된다.
  ◦ 조건이후에 있는 괄호 뒤에 세미콜론(;)을 꼭 붙여줘야 한다.
  · do ~ while문이 실행되는 과정 

 

 - for, while, do~while의 비교
  · for, while의 공통점 : 조건식이 참인 경우에만 수행
  · for, while과 do~while의 차이점 : 일단 먼저 문장을 수행한 다음 조건식을 검사, 세미콜론(;)이 필요
  · for, while, do~while의 비교

 

 

4. 분기문
 - break
  · switch문과 반복문과 함께 사용
  · 반복문에서 반복 명령의 실행도중 강제적으로 빠져나오게 할 때 사용되는 제어문
  · 여러 개의 반복문이 중첩되어 있을 경우에는 break문이 사용된 반복문 한 개만 빠져 나온다.
 - continue
  · 반복문에서 continue문이 사용된 위치 이하에 있는 명령어를 모두 무시하고 반복문의 선두로 돌아가게 할 때 사용되는 제어문
 · do~while 같은 경우 조건이 있는 부분으로 돌아가게 한다.
 - goto
  · 프로그램 수행 중 제어의 흐름을 프로그램의 특정 위치로 이동하기위해 사용되는 제어문
  · 조건 없이 지정한 위치로 무조건 점프한다.
  · 쉽게 사용할 수는 있지만 자칫 프로그램의 구조를 복잡하게 만들 수 있어 자주 쓰이지는 않는다.
  · 드라이버 프로그램에서 주로 사용되고 콘솔 프로그램에서는 잘 사용되지 않는다.
  · goto로 이동할 지점을 goto와 이름(label)으로 지정하고 이름(label) 지점을 표시할 때는 콜론(:)을 붙여 사용한다. 

  · goto와 if를 이용해 반복문을 만들 수도 있다.


'C Langauage' 카테고리의 다른 글

Chapter 7. 함수(Function)  (0) 2015.08.05
Chapter 6. 배열(Array)과 문자열(String)  (0) 2015.08.05
Chapter 4. 연산자(Operator)  (0) 2015.08.05
Chapter 3. 자료의 입출력  (0) 2015.08.05
Chapter 2. 데이터형, 변수, 상수  (0) 2015.08.05