Purpose-post built
for 과 while 이 무슨 차이가 있을까 곰곰히 생각하다가, 경험을 통해 몇가지를 정리 할 수 있어, 이렇게 글로 남기게 되었다. - 익필
Content
문법 공부를 하면 알겠지만, loop를 만들기 위해선 대표적으로 for 과 while을 사용 한다. do while 도 있지만, 이건 논외이다.(역활이 확실히 구분 되므로) 코드를 리뷰하는 내 입장에서 오늘 이런 경험을 하게 되었다.
1. while 이니까, "어떻게 루프를 빠저 나가지?"
while 구성은 조건 판별 구역과 루프 구역으로 나뉘어져 있다.
while (조건문)
{
루프 구역
}
판별 구역 외에서 어디부터 어디까지 루프를 돌리라고 명시적으로 나타내지 못하기 때문에, while은 loop 밖에서 loop 상태를 결정 짖고, loop 내에서 loop 상태를 변화시킬 수 밖에 없다. 그래서 while loop는 범위라는 개념으로 사용하기 힘들다.
이러한 while 기능 때문에,
while 문은 "loop 상태"로 loop가 결정 될 때, 사용 해야만 한다.
2. for 이니까 "얼만큼 돌리지?"
for 문은 while 과 다르게, 초기화 구역, 조건 구역, 루프 구역, 스탭 구역, 이렇게 4개 구역으로 나뉘어 있다. 구역별 역활에 대해서는 이미 안다고 전제하기 때문에 설명하지 않는다.
for (초기화;조건문;스텝)
{
루프 구역
}
이러한 for 문은, 초기화 구역에 무엇을 초기화 할 수 있으며, 조건문에선 무엇을 조건에 쓸 수 있고, 스텝에선 조건에 영향을 미치게 하여, 루프 구역을 돌릴 수 있다. 코드 리뷰시 for 문을 보게 되면, 우선 "초기화, 조건, 스텝"을 본능적으로 보는 것과 같은 이치이다.
이러한 for 기능 때문에,
for 문은 "범위"만큼 loop를 돌릴 때 사용해야만 한다.
do while은 무조건 한번을 우선 실행시키고, 조건이 맞을 때, 반복한다는 개념이므로, 일반적인 loop와 다르다. 그래서 논외이다. 무한루프는 바로 무한으로 흐르기 위한 로직이므로, 일반적인 루프(특정 조건에서만 루프되는 루프)와 개념이 다르다. 그래서 논외다.
4. for과 while이 구분된 실제 코드
digression
- 일전에 for vs while 에 포스트를 썻기에 링크를 건다. http://ikpil.com/476
'연구실 > 파편화된 기록들' 카테고리의 다른 글
C++ 에서 템플릿 인자 추론에 대한 고찰 문제 (0) | 2010.11.08 |
---|---|
10진 정수를 헥사 코드, 헥스 코드, hex code 문자열로 만드는 방법 (0) | 2010.10.14 |
리눅스 컴파일 환경 구축하기 - Debian 편 (0) | 2010.10.12 |
소멸자로 객체를 초기화 하는 작업은 무척 위험하다. (2) | 2010.07.31 |
C++ 비가상 함수를 상속 클래스가 재정의 했을 경우 (4) | 2010.07.13 |
윈도우 7, 창 최대화 최소화, 화면 분할 좌측 붙이기, 화면 분할 우측 붙이기 (360) | 2010.01.15 |
"크다" 와 "작다"는 "같다" 보다 더 어렵다. (718) | 2010.01.13 |
%= 연산 Vs if 연산의 비교 (720) | 2010.01.11 |
for문 보다 STL이 더 직관적이고, 수정이 편하다. (360) | 2009.12.23 |
if 지옥 또는 if Hell 이라고 나는 이름을 지었다. (360) | 2009.12.22 |
최근댓글