최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

   for, while, do~while 세가지 반복문의 쓰임새


세가지 모두 반복을 하는 반복문이지만 형식이 약간 다르다.

 

각각의 차이가 있으므로 적재적소에 알맞게 구성하는것이 효율적이다.

 

1. for문

 

정해진 범위가 있을 경우 가장 적합하다. for문을 쓸 경우 반복루프 안에서 탈출(break)을 하는 경우가 많지않다.


학생들의 평균값, 정해진 배열에 일괄적으로 조작 등 미리 정해진 횟수만큼 반복할때 가장 적합하다.


또한 for문의 구성식이 "초기값+조건식+증가값" 으로 첫줄에 표기되어있어서 한눈에 흐름을 파악하기가 쉽다는 장점이있다.

 

2. while문

 

반복되는 조건식만 가지고있다. while은 내부에서 조건식에 대한 참/거짓을 판별하도록 해야한다.


즉 for문 과 같이 정해진 범위가 없기때문에 언제 발생할지 모르는 조건(사용자의 입력, 네트워크의 변화 등)에 대해


사용하는것이 적합.

 

while문을 아래와같이 쓰면 for문과 똑같은 쓰임새로 쓸수 있다.

 

for(초기식;조건식;증감식){
}

 

초기식;
while(조건식){
 명령;
 증감식;
}


3. do~while문

 

while문과 비슷하지만 조건을 점검하는 시기가 다르다.


while문은 루프전에 조건을 검사하지만 do~while문은 일단 최소한 한번은 명령을 실행한 후 루프로 넘어간다.


while문은 조건에 따라 한번도 실행되지 않을수도있지만 do~while문은 최소한 한번은 실행된다는 차이점이 있다.


while : 선평가 후실행


do~while : 선실행 후평가

 

   정리

제어문에 따른 실행속도나 코드의 크기는 거의 차이가 없다. 실행속도는 제어문을 선택하는 기준이 아니다.


C책을 보고 예제를 따라하면서 반복문에 따른 해당 소스의 내용(논리적흐름)을 비교하면 다음과 같다.

 

ㄱ. 1~100까지 숫자의 합계를 구하는 루프.

ㄴ. 임의의 정수형 숫자를 생성하고, 입력받아서 루프를 탈출하는 게임. (단, 999는 루프를 종료한다.)

ㄷ. 임의의 폴더에 있는 특정 이름을 가진 파일을 검색.

 

1 : ㄱ - for문이 적합.

2 : ㄴ - do ~ while이 적합.

3 : ㄷ - while이 적합.

 

1번의 경우 별다른 이견이 없을듯 하고..


2번의 경우 게임이 종료되던 진행되던 최초에 사용자의 입력을 받아야한다.


이런경우 사용자의 입력을 받고 결정해야 하기때문에 do~while문이 적합하다.

 

3번의 경우 파일찾기 같은 프로그램을 떠올려 봤을 때 폴더가 가진 파일의갯수는 가변적이므로


폴더가 가진 파일의 갯수만큼 루핑하여 내부에는 조건문으로 파일이름을 검색하는 처리를 하면 될 것이다.



 

'■ 개발관련 ■ > 산수와 알고리즘' 카테고리의 다른 글

10미만 0 붙이기  (0) 2013.10.16
for문 - 감산 for문  (0) 2013.10.16
callback 함수란  (0) 2013.10.16
색상의 알파값(투명도) 16진수계산  (0) 2013.10.16
Row(행) 와 Column(열)  (0) 2013.10.13
댓글