Chapter 5. 제어문
1. 제어문
- 제어문
· 조건의 결과 값에 따라서 프로그램의 수행 순서를 제어하거나 문장들의 수행 횟수를 조정하는 문장
· 제어문은 크게 조건문, 반복문, 분기문으로 나눌 수 있다.
2. 조건문
- if
· if
if(조건문)
|
if(조건문) |
◦ if 다음의 ()안에 있는 조건식이 참이면 문장을 수행하고 조건식이 거짓이면 수행하지 않는다.
◦ if문은 여러 개를 사용할 수 있다.
◦ 만일 if문에서 조건식이 참일 때 수행할 문장이 여러 개면 문장을 {}안에 넣는다.
※ 복합문 : {}
◦ if 문이 수행되는 과정
|
· if else
if(조건식)
|
if(조건식) |
◦ if문의 조건식이 만족할 때는 if 다음에 있는 문장1을 수행하고 만족하지 않을 때는 else 다음에 있는 문장2를 수행한다.
◦ 만일 if문에서 조건식이 참일 때 수행할 문장이 여러 개면 문장을 {}안에 넣고 else문이 수행할 문장이 여러 개면 문장을 {}안에 넣어야한다.
◦ else문은 조건을 쓸 수 없다
◦ if else 문이 수행되는 과정
|
· 다중 if문(if, else if, else)
if(조건식1) |
◦ if else문에서 else 다음에 다시 if를 사용하는 문장을 다중 if라고 한다.
◦ 다중 if문은 위에 있는 조건부터 차례대로 비교하면서 내려오게 되는 데 조건이 참이 되어 명령을 수행하게 되면 아래 있는 나머지 조건은 비교하지 않고 다중 if문 전체를 빠져 나온다.
◦ 조건이 모두 포함되어 있다면 else 문을 꼭 쓸필요는 없다.
◦ 다중 if 문이 수행되는 과정
else 문이 있는 경우 |
else 문이 없는 경우
|
- switch
switch(정수식) |
· 정수식의 값에 따라서 여러 가지 중 하나를 실행하는 조건문
· 여러 가지 중 하나로 분기해 다중분기라고도 한다.
· 변수 값을 case에서 찾아 명령을 수행하는 조건문으로 해당하는 값이 없을 경우 default의 명령문을 수행한다.
※ case와 명령문 사이에는 콜론(:)을 써야한다.
◦ switch case문이 실행되는 과정 |
◦ switch case문이 실행되는 과정
|
- switch문과 if~else문의 비교
· switch문은 값을 비교해 하나만 일치하는 경우를 수행하는 반면에 if~else문은 조건을 비교해 범위 내에서 일치하는 것을 찾아 수행하기 때문에 if~else문이 수행 범위가 더 넓다는 장점을 가지고 있다.
· switch문을 사용했을 때는 조건문을 보다 더 간결하게 작성할 수 있다는 장점을 가지고 있다.
· switch문도 if문과 동일하게 중첩이 가능하다.
· switch문과 if~else문의 비교
|
3. 반복문
- 하나 이상의 문장을 두 번 이상 반복 실행하기 위해 구성하는 함수
- 반복문 또한 조건문과 동일하게 중첩이 가능하다.
- for
for(초기값 ; 조건 ; 증감값) |
· 초기값 : 본격적으로 반복을 시작하기에 앞서 딱 한번 실행하는 값
· 조건 : 매 반복의 시작에 앞서 실행되며, 그 결과를 기반으로 반복 유무를 결정하는 값
주로 비교연산자가 많이 사용된다.
· 증감식 : 매 반복 실행 후 마지막에 연산이 이루어지는 식
· 초기값, 조건, 증감식은 생략이 가능하다.
※ 초기값, 조건, 증감식을 생략할 경우 세미콜론(;)은 반드시 써줘야한다.
· for문이 실행되는 과정
|
- while
while(조건) |
· 괄호(())안의 조건이 참일 경우만 중괄호({})안의 명령문이 반복 수행된다.
· 명령문이 한 개일 경우 중괄호를 생략가능하다.
· 먼저 조건이 맞는지 판단한 후 실행
· 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 |